2016-06-10 65 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'。 –