【问题标题】:Prevent Doctrine migration diff from deleting tables防止 Doctrine 迁移差异删除表
【发布时间】:2014-05-21 23:45:21
【问题描述】:

我目前正在对现有的大型数据库进行“Doctrinizing”。这个过程运行良好,我们慢慢能够用实体和 DQL 替换旧的原始查询代码。

我们最近发现了很棒的 Doctrine Migrations 项目,它似乎是管理我们数据库更改的完美候选者。然而,我们遇到了一些障碍。

我们的数据库非常大,我们正在一点一点地重构应用程序的各个方面。我们目前有大约 40% 的数据库表示为实体。问题是当我们在部分转换的数据库上运行“差异”时,差异想要删除大量表,因为这些表不存在实体。我们可以手动编辑差异,但它会变得非常麻烦并且可能容易出错。

问题是;是否可以创建一个 diff 并告诉 diff 进程不要删除任何不存在实体的表?

【问题讨论】:

    标签: doctrine doctrine-migrations


    【解决方案1】:

    如果您使用 Symfony2,您只需添加此处记录的配置:http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html#manual-tables

    在每个命令的基础上,您可以为那些应该考虑差异的表指定一个正则表达式,例如:

    app/console doctrine:migrations:diff --filter-expression=/^t_/
    

    (将只为那些名称以t_ 开头的表生成差异,而忽略另一个)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      相关资源
      最近更新 更多