如何正确更新 symfony2 中的数据库?

How update correctly a database in symfony2?

Symfony2 的官方文档是这样说的:

"无论您是否利用迁移,doctrine:schema:update 命令应该只 在开发过程中使用。它不应在生产环境中使用。"

那么在生产环境中更新数据库的正确方法是什么?

你应该使用 Doctrine migration bundle.

它可以帮助您为您的数据库生成非破坏性文件。

Doctrine 迁移包可以根据您的模式更改为您生成生成迁移的所有查询(向上和向下,因此您可以 "switch" 在迁移之间),此外,您可以生成可以在 "safe way".

中执行的查询(甚至插入、删除、更新等)

否则你可以使用Symfony console commands(你需要自己写)来处理这种情况。

对我来说,迁移包是最安全的方式:您甚至可以在部署脚本或流程中自动执行 doctrine:migration:migrate 命令,这样您就不会冒险部署没有正确版本数据库架构的软件版本