Unterschied zwischen InstallSchema und InstallData

11

Ich möchte den Unterschied zwischen InstallSchema und InstallData im Detail kennen.

Ich muss auch wissen, wann ich InstallSchema.phpund verwenden kann InstallData.php?

Ketan Borada
quelle
Lassen Sie mich wissen, wenn Sie noch ein Problem haben, andernfalls akzeptieren Sie die Antwort, damit anderen Benutzern geholfen wird
Manthan Dave

Antworten:

17

Zuerst werden sowohl InstallSchema als auch InstallData beide Methoden aufgerufen, wenn Sie ein neues Modul installieren

Schema-Setup-Skripte ändern das Datenbankschema, sie erstellen oder ändern die erforderlichen Datenbanktabellen. Wenn das Modul installiert wird, wird Setup \ InstallSchema :: install () ausgeführt.

Dies bedeutet, dass eine neue Tabelle und ihre Felder mit ihrer Struktur erstellt werden.

InstallData-Setup-Skripte enthalten Einträge, die das Modul in die Datenbank einfügen muss. Attribute, die standardmäßig mit Magento geliefert werden, Cms-Seiten, verschiedene Standardgruppen und Rollen sind Beispiele für die Dateneinrichtung.

Das Daten-Setup wird nach dem Schema-Setup ausgeführt. Sie funktionieren auf ähnliche Weise.

Kommen Sie also zu dem Schluss, dass der Hauptunterschied zwischen beiden darin besteht, dass InstallSchema zum Erstellen einer Tabelle und ihrer Struktur verwendet wird. Während InstallData zum Einfügen / Hinzufügen von Daten in eine Tabelle verwendet wird.

Manthan Dave
quelle
Mittel, InstallData Verwendung für Add - Attribut für Customer, Qoute, Order, Catalog, Product, Category.
Ketan Borada
Nun, Sie korrigieren teilweise, InstallData wird verwendet, um Daten des Attributs (Wert des Attributs) einzufügen. Nehmen wir an, Sie haben eine Tabelle mit dem Namen "Slider" von installSchema erstellt. Jetzt müssen Sie jede Folie Daten einfügen, dann müssen Sie die InstallData-Datei verwenden und die Daten jeder Folie definieren . Sinn ergeben ?
Manthan Dave
8

Es gibt folgenden Unterschied:

InstallSchema

Der Zweck von InstallSchema.php besteht darin, neue Tabellen / Attribute / Felder in der Datenbank zu erstellen

InstallData

Der Zweck von InstallData.php besteht darin, Daten / Werte in die Datenbank einzufügen.

Abhishek Tripathi
quelle
6

Magento2 verwendet vier Dateitypen für die ersten Operationen im Zusammenhang mit der Datenbank, die nur mit dem Installationsprozess des Moduls ausgeführt werden (diese Dateien werden nur einmal ausgeführt, wenn sie vorhanden sind). Diese Dateien lauten wie folgt

  1. InstallSchema.php
  2. InstallData.php
  3. UpgradeSchema.php
  4. UpgradeData.php

Alle diese Dateien sind im Magento_root/{app/Vendor}/{Vendor_Name}/{Module_Name}/SetupNamensraum Ihres Magento-Moduls vorhanden. Hier habe ich alle Dateien mit ihrer Verwendung beschrieben.

InstallSchema.php

Diese Datei wird zuerst direkt nach der Registrierung Ihres Moduls ausgeführt (dh unmittelbar nachdem Ihr Modul und seine Versionseinträge in der Tabelle vorgenommen wurden -> setup_module). Diese Datei wird verwendet, um Tabellen mit ihren Spaltenattributen in Ihrer Datenbank zu erstellen, die später vom neu installierten Modul verwendet werden.

InstallData.php

Diese Datei wird nach ausgeführt InstallSchema.php. Es wird verwendet, um der neu erstellten Tabelle oder einer vorhandenen Tabelle Daten hinzuzufügen.

UpgradeSchema.php

Diese Datei wird mit dem Modul geliefert und wird nur dann ausgeführt, wenn Sie bereits die vorherige Version des Moduls in Ihrem Magento installiert haben (bedeutet, dass die vorherige Version in die Tabelle eingetragen wurde -> setup_module). Es wird verwendet, um die Tabelle zu bearbeiten, die sich auf das Modul bezieht (bedeutet, dass es verwendet wird, um das Tabellenschema zu ändern, dh das Spaltenattribut und das Hinzufügen einer neuen Spalte zu dieser Tabelle).

UpgradeData.php

Diese Datei wird nach ausgeführt UpgradeSchema.php. Es hat das gleiche Konzept wie InstallData.phpzuvor, aber mit dieser Datei können Sie den Datenbankinhalt ohne Verwendung von Modelldateien ändern. Sie können diese Datei auch verwenden, um neue Inhalte zur Datenbank hinzuzufügen InstallData.php. Aber genauso wie UpgradeSchema.phpes läuft auch nur dann, wenn Sie die Module der vorherigen Version in Ihrem Magento installiert haben.

Wie ich bereits sagte, werden diese Dateien beim Starten nur einmal ausgeführt. Die grundlegende Verwendung dieser Dateien besteht darin, die Tabellen und Daten für das Modul vorzubereiten, das vom Modul während seiner gesamten Existenz verwendet wurde.

Hinweis: Magento verwendet diese Dateien, um Tabellen zu erstellen, die in Magentos-Funktionen verwendet werden, und um Inhalte wie cms_contents, customer_groups & Attribute, Products_Types & Attribute, Steuergruppen usw. hinzuzufügen.

Abhishek Tripathi
quelle
4

Es gibt einen grundlegenden Unterschied zwischen 2 ist

InstallSchema wird ausgeführt, wenn das Modul installiert wird, um die Datenbankstruktur einzurichten

While InstallDatawird ausgeführt, wenn das Modul installiert wird, um die Daten für die Datenbanktabelle zu initialisieren

Hoope dies löschen Sie Ihre Anfrage.

Kul
quelle