我正在使用Symfony 2.3开发一个应用程序,它必须为不同的客户安装。我们将提供不同的功能,因此我们的想法是将功能/捆绑包与主应用程序分开,并使用composer将其加载到项目中。由于我们使用Doctrine Migrations来维护不同版本的数据库更改,因此我不确定如何从捆绑包中使用它们。我们使用Capifony将应用程序部署到实时服务器。
所以我的问题是......如何从编写器加载的包中自动执行迁移?
答案 0 :(得分:5)
我最终创建了一个命令,将所有迁移文件从捆绑包中的预定义目录复制到默认位置,然后执行doctrine:migration:从命令中迁移。
答案 1 :(得分:2)
对于复杂的部署,我使用了phing。他可以轻松地与Symfony控制台集成。但最后我在Synfony控制台上使用了一个简单的代码。 Composer可以轻松地将Symfony app命令称为“post-install-cmd”
答案 2 :(得分:1)
我不认为“composer loaded bundles”是这里的问题。例如,您可以在src/
(应用程序的一部分或子模块)中拥有多个捆绑包,并且具有完全相同的问题。问题是为您的不同捆绑包提供多个实体管理器和数据库。他们实际居住的地方是微不足道的。
无论如何,我遇到了完全相同的问题。经过一些搜索,我发现实际上有一个打开拉取请求来解决这个问题:https://github.com/doctrine/DoctrineMigrationsBundle/pull/46
我希望很快得到修复!