9

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

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

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

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

4

1 回答 1

14

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

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

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

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

于 2014-05-08T12:10:25.267 回答