自定义捆绑迁移在第一次安装时失败,因为它们在 OroCommerce 的安装程序之前运行

问题描述

我创建了一个自定义包,其中有一些迁移,其中一个是向 Product 实体添加一个字段,使 oro_product 表成为运行此迁移的依赖项。

问题是,当我运行 oro:install 命令时,它会运行迁移,但一开始就失败了,因为它首先运行我的自定义包的迁移,这将不起作用因为此时 oro_product 表不存在。

有没有办法控制迁移的执行顺序,或者有什么办法可以避免这个问题?

谢谢!

解决方法

要稍后加载架构迁移,您可以在 <BundleDirectory>/Resources/config/oro/bundles.yml 文件中设置更高的包优先级。例如:

bundles:
    - { name: Acme\Bundle\DemoBundle\AcmeDemoBundle,priority: 1000 }