2016-06-10 8 views
1

Ich habe ein grundlegendes Magento 2-Modul geschrieben. Das Modul kann sich bei Magento 2 registrieren, wenn ich bin/magento module:enable <module name> starte. Ich habe die setup_module Tabelle überprüft und der Moduleintrag ist da und das Modul ist aktiviert.Magento 2 InstallSchema wird nicht ausgeführt

Ich habe ein Problem, meine Setup/InstallSchema.php zum Laufen zu bekommen. Egal, was ich mache, das Schema-Installationsprogramm wird nie ausgeführt. Ich nehme an, dass das ist, weil, als ich zuerst den bin/magento setup:upgrade Befehl durchführte, ich einen freien InstallSchema.php hatte. Deaktivieren und erneut aktivieren des Moduls macht nichts. Ich habe die Datenbank überprüft und Magento scheint die Datenbank nicht zu verwenden, um das Modul setup_version zu verfolgen. Ich habe versucht zu finden, wo auf der Festplatte Magento die aktuell installierte setup_version verfolgt, aber bis jetzt habe ich eine leere gezeichnet. Ich weiß, dass Magento in mein Modul anrufen kann, weil es die Datei Setup/InstallData.php ziemlich glücklich ausführt.

Irgendwelche Ideen, wie ich Magento 2 zwingen kann, meine Setup/InstallSchema.php Datei auszuführen?

Antwort

1

Sie haben Recht Magento führt InstallSchema einmal wenn bin/magento setup:upgrade Befehl ausgeführt wird. Sie können einen UpgradeSchema für Änderungen nach der Installation erstellen.

Führen Sie die folgenden Schritte aus, um Ihr InstallSchema in UpgradeSchema zu konvertieren.

1) Erstellen Sie eine Kopie der aktuellen InstallSchema Datei und benennen Sie sie in UpgradeSchema um.

2) Bearbeiten UpgradeSchema.php und ersetzen finden: -

{ InstallSchema } => { UpgradeSchema } 

{ public function install } => { public function upgrade } 

3) Veränderung setup_version="1.0.0"-setup_version="1.0.1" in /app/code/vender/module/etc/module.xml

4) Execute php bin/magento setup:upgrade

Hoffe, es funktioniert .... :)

+0

Ich glaube, dass wenn Sie die Zeile aus der 'setup_module' Tabelle löschen, die mit dem Namen Ihres Moduls übereinstimmt d Führen Sie dann das 'InstallSchema' aus. –