3

我目前正在将 Symfony2 与 Doctrine 一起使用。我直接向我的数据库添加了一些外键,而不使用 Doctrine 中的关系。似乎每次我执行 adoctrine:schema:update --force时,我所有的外键都会被丢弃。这通过运行来验证doctrine:schema:update --dump-sql

有没有办法可以防止教义丢弃手动创建的外键?或者有没有一种方法可以使用没有关系的注释创建外键?

4

2 回答 2

2

sgoettschkes一样,我认为不可能完全按照您的要求去做(但是您可以为将来的版本写一张票!我什至没有找到,这似乎是个好主意..!):

我不这么认为。您应该决定是使用原则还是让您的数据库模式 100% 由它定义,或者根本不使用更新(手动更改数据库)。

但是,在那之前,我建议您使用本机 SQL 编写一个脚本,并在您的学说模式中(之后)运行它:更新内容。

于 2012-10-08T15:46:05.257 回答
0

您不应该在生产环境中使用doctrine:schema:update,查看Doctrine Migrations 以在生产环境中运行,这样您就可以准确地知道部署后正在运行哪些查询。

您可以手动添加索引或手动重命名它们。更新架构功能旨在在开发期间使用,您可以在架构的不同版本之间频繁更改,并且数据库的内容价值要低得多。如果您想在开发中测试索引,您可以在这种情况下手动重新创建它们,但我相信这些情况不会经常发生。

我不知道你为什么不想定义一个关系,因为它所做的只是创建这个索引,加上其他可以被查询禁用的功能。

于 2012-10-11T22:54:59.273 回答