2016-06-10 73 views
1

我寫了一個基本的Magento 2自定義模塊。當我運行bin/magento module:enable <module name>時,該模塊能夠註冊到Magento 2。我已經檢查了setup_module表,模塊條目在那裏,模塊已啓用。Magento 2 InstallSchema沒有被執行

我有一個問題讓我Setup/InstallSchema.php運行。無論我做什麼,架構安裝程序都不會執行。我假設這是因爲當我第一次執行bin/magento setup:upgrade命令時,我有一個空白的InstallSchema.php。禁用並重新啓用模塊不會執行任何操作。我檢查了數據庫,Magento似乎沒有使用數據庫來跟蹤模塊setup_version。我試圖找到磁盤上的位置Magento跟蹤當前安裝的setup_version,但到目前爲止我畫了一個空白。我知道Magento可以調用我的模塊,因爲它非常愉快地執行Setup/InstallData.php文件。

任何人有任何想法如何強制Magento 2執行我的Setup/InstallSchema.php文件?

回答

1

你是在執行命令bin/magento setup:upgrade權Magento的一次執行InstallSchema。安裝後,您可以爲更改創建一個UpgradeSchema

按照以下步驟將InstallSchema轉換爲UpgradeSchema。

1)複製當前的InstallSchema文件並將其重命名爲UpgradeSchema

2)編輯UpgradeSchema.php並找到替代: -

{ InstallSchema } => { UpgradeSchema } 

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

3)改變setup_version="1.0.0"setup_version="1.0.1"/app/code/vender/module/etc/module.xml

4)執行php bin/magento setup:upgrade

希望它會工作.... :)

+0

我相信,如果您從'setup_module'表中刪除了與您的模塊名稱相匹配的行然後運行'InstallSchema'。 –