我已经编写了一个基本的Magento 2自定义模块。当我运行Control.Invoke
时,该模块可以向Magento 2注册。我检查了bin/magento module:enable <module name>
表,模块条目就在那里,模块已启用。
我在让setup_module
运行时遇到问题。不管我做什么都不重要,架构安装程序永远不会被执行。我假设这是因为当我第一次执行Setup/InstallSchema.php
命令时,我有一个空白bin/magento setup:upgrade
。禁用和重新启用模块不会执行任何操作。我检查了数据库,Magento似乎没有使用数据库来跟踪模块InstallSchema.php
。我已经尝试找到磁盘Magento跟踪当前安装的setup_version
的位置,但到目前为止,我已经绘制了空白。我知道Magento可以调用我的模块,因为它正在愉快地执行setup_version
文件。
有人想知道我如何强制Magento 2执行我的Setup/InstallData.php
文件吗?
答案 0 :(得分:5)
执行InstallSchema
命令时,你是正确的magento执行bin/magento setup:upgrade
。您可以在安装后为更改创建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
希望它能起作用.... :)