使用 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 层通常是个好主意。例如:
- 部署 B 已部署,它有一个不使用
full name
列的迁移,而是拆分为 first name
和 last name
。 full name
列仍然保持向后兼容;
- 假设 B 不稳定:您回滚到 A。由于仍有一个完全工作的
full name
列,因此不需要迁移回滚;
- 假设 B 稳定:部署 Deploy C 时,应执行迁移,首先确保所有
full name
值拆分为 first name
和 last name
,然后删除 full name
列完全;
- 假设部署 C 不稳定:您回滚到 B,因为它们都只使用
full name
,不需要迁移回滚。
我有一个 Symfony 3 应用程序,我在其中使用 deployer to deploy my application. Also I am using Doctrine Migrations 迁移我的数据库。
我用的是symfony3 recipe.
当我 运行 dep deploy
时,部署程序迁移了我的数据库。但是,当我 运行 dep rollback
它不会回滚相应的学说迁移。
我搜索了 Google 和 Whosebug 以找到解决此问题的人,但我似乎找不到任何人。
你有什么好主意吗?
您可以使用向后兼容的迁移,这样就永远不需要回滚。
因为它会导致数据库混乱,所以定期清理 BC 层通常是个好主意。例如:
- 部署 B 已部署,它有一个不使用
full name
列的迁移,而是拆分为first name
和last name
。full name
列仍然保持向后兼容; - 假设 B 不稳定:您回滚到 A。由于仍有一个完全工作的
full name
列,因此不需要迁移回滚; - 假设 B 稳定:部署 Deploy C 时,应执行迁移,首先确保所有
full name
值拆分为first name
和last name
,然后删除full name
列完全; - 假设部署 C 不稳定:您回滚到 B,因为它们都只使用
full name
,不需要迁移回滚。