Magento 2 InstallSchema未执行

Jac*_*hes 2 php magento magento2

我已经写了一个基本的Magento 2自定义模块。我运行时,该模块可以向Magento 2注册bin/magento module:enable <module name>。我已经检查了setup_module表,并且模块条目在那里并且模块已启用。

我在Setup/InstallSchema.php运行时遇到问题。不管我做什么,都不会执行架构安装程序。我认为这是因为当我第一次执行bin/magento setup:upgrade命令时,我有一个空白InstallSchema.php。禁用和重新启用该模块不会执行任何操作。我已经检查了数据库,Magento似乎没有使用数据库来跟踪模块setup_version。我试图找到Magento在磁盘上跟踪当前安装位置的位置,setup_version但到目前为止,我已经绘制了一个空白。我知道Magento可以调用我的模块,因为它Setup/InstallData.php非常愉快地执行了文件。

有人对如何强制Magento 2执行Setup/InstallSchema.php文件有任何想法吗?

Kap*_*hia 6

你是正确的magento在执行命令InstallSchema时执行一次bin/magento setup:upgrade。您可以UpgradeSchema在安装后为更改创建一个。

请按照以下步骤将您的InstallSchema转换为UpgradeSchema。

1)复制当前InstallSchema文件,并将其重命名为UpgradeSchema

2)编辑UpgradeSchema.php并找到替换:

{ InstallSchema } => { UpgradeSchema }

 { public function install } => { public function upgrade }
Run Code Online (Sandbox Code Playgroud)

3)变化setup_version="1.0.0"setup_version="1.0.1"/app/code/vender/module/etc/module.xml

4)执行 php bin/magento setup:upgrade

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

  • 我相信,如果您从“ setup_module”表中删除与模块名称匹配的行,则应运行“ InstallSchema”。 (2认同)