使用 Deployer 回滚 doctrine:migrations

Rollback doctrine:migrations with Deployer

我有一个 Symfony 3 应用程序,我在其中使用 deployer to deploy my application. Also I am using Doctrine Migrations 迁移我的数据库。

我用的是symfony3 recipe.

当我 运行 dep deploy 时,部署程序迁移了我的数据库。但是,当我 运行 dep rollback 它不会回滚相应的学说迁移。

我搜索了 Google 和 Whosebug 以找到解决此问题的人,但我似乎找不到任何人。

你有什么好主意吗?

您可以使用向后兼容的迁移,这样就永远不需要回滚。

因为它会导致数据库混乱,所以定期清理 BC 层通常是个好主意。例如:

  1. 部署 B 已部署,它有一个不使用 full name 列的迁移,而是拆分为 first namelast namefull name 列仍然保持向后兼容;
  2. 假设 B 不稳定:您回滚到 A。由于仍有一个完全工作的 full name 列,因此不需要迁移回滚;
  3. 假设 B 稳定:部署 Deploy C 时,应执行迁移,首先确保所有 full name 值拆分为 first namelast name,然后删除 full name 列完全;
  4. 假设部署 C 不稳定:您回滚到 B,因为它们都只使用 full name,不需要迁移回滚。