【发布时间】:2013-01-05 20:02:54
【问题描述】:
当我在本地机器上使用 Symfony 时,如果我需要更新我的数据库模式(比如说,向表中添加一个新列),我修改了实体文件,然后运行 php console doctrine:schema:update --force。现在我的代码在远程服务器上(没有 SHH 访问可用)。我可以再次修改实体,然后使用 phpMyAdmin 修改表,这样我就不需要执行更新命令,但我不确定这是否正确。
【问题讨论】:
当我在本地机器上使用 Symfony 时,如果我需要更新我的数据库模式(比如说,向表中添加一个新列),我修改了实体文件,然后运行 php console doctrine:schema:update --force。现在我的代码在远程服务器上(没有 SHH 访问可用)。我可以再次修改实体,然后使用 phpMyAdmin 修改表,这样我就不需要执行更新命令,但我不确定这是否正确。
【问题讨论】:
As said in the documentation,使用doctrine:schema:update --force 很强大,但不是最好的方法:
利用此功能的更好方法是通过migrations,它允许您生成这些 SQL 语句并将它们存储在迁移类中,这些迁移类可以在您的生产服务器上系统地运行,以便跟踪和迁移您的数据库架构安全可靠。
查看引用中的链接(至DoctrineMigrationsBundle)这是如何工作的。
【讨论】: