【问题标题】:How to handle doctrine migrations in bundles如何处理捆绑中的学说迁移
【发布时间】:2013-10-25 05:41:48
【问题描述】:

我正在使用 Symfony 2.3 开发一个应用程序,必须为不同的客户安装它。我们将提供不同的功能,因此我们的想法是将功能/捆绑包与主应用程序分开,并使用 Composer 将其加载到项目中。当我们使用 Doctrine Migrations 来维护跨版本的数据库更改时,我不确定如何从捆绑包中使用它们。我们正在使用 Capifony 将应用程序部署到实时服务器。

所以我的问题是......我怎样才能从 composer 加载的包中自动执行迁移?

【问题讨论】:

    标签: symfony doctrine-orm migration


    【解决方案1】:

    我最终创建了一个命令,它将捆绑包中预定义目录中的所有迁移文件复制到默认位置,然后从命令中执行教义:迁移:迁移。

    【讨论】:

    • 请您分享您的解决方案吗?
    【解决方案2】:

    对于复杂的部署,我使用了 phing。他很容易与 Symfony 控制台集成。但最后我在 Synfony 控制台上使用了一个简单的代码。 Composer 可以轻松地将 Symfony 应用命令调用为“post-install-cmd”

    【讨论】:

    • 另外我认为你可以扩展 Composer\Command\InstallCommand
    • 我正在使用 Capifony 进行部署。因此,我将使用一个新命令来处理捆绑式数据库迁移。
    【解决方案3】:

    我不认为“composer 加载包”是这里的问题。例如,您可能在src/(应用程序或子模块的一部分)中有多个捆绑包,并且遇到完全相同的问题。问题在于您的不同捆绑包有多个实体管理器和数据库。他们实际居住的地方是微不足道的。

    无论如何,我遇到了完全相同的问题。经过一番搜索,我发现实际上有一个开放的拉取请求来解决这个问题:https://github.com/doctrine/DoctrineMigrationsBundle/pull/46

    希望尽快修复!

    【讨论】:

    • 你是对的......这与作曲家安装的捆绑包无关。尽管我对所有捆绑包都使用相同的实体管理器和数据库。
    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多