在繁重的开发期间,数据库架构会快速且连续地发生变化,并且随着我们每周对beta版本的推动而来,架构已发生了如此大的变化,以至于唯一明智的选择是删除所有我可以并且可以从我的开发数据库中复制新版本。显然,一旦启动,这是行不通的,因为破坏生产数据是灾难的根源,所以我想知道那里有什么策略来管理从一个版本/修订到另一个版本的数据库模式更改?
我发现或经历过的一些:
- 直接从一个数据库到另一个数据库的nuke-and-dump(我现在在做什么)
- 使用通过脚本或手动运行的SQL语句维护UPDATE.sql文件。
- 在活动数据库中维护具有相应“ db-schema-version”值的update.php文件
第三种选择似乎是最明智的选择,但是仍然存在构造错误的SQL查询使中间脚本失败的可能性,从而使数据库处于半更新状态,因此需要还原备份。
看来这是没有问题的,但是确实发生了,因为我们作为一个团队,我们使用phpMyAdmin,我什至不能依靠自己记住复制执行的SQL语句以粘贴到update.php文件中。导航到另一页后,我必须手动重新编写SQL语句,或者撤消更改并再次执行。
我想我希望找到一种不会影响我们已建立的开发工作流程的解决方案?
update.php
或update.sql
文件,然后再将其应用于活动数据库,对吗?而PHPMyAdmin可能会因为脚本等可能发生的问题而受到指责,也许是时候考虑使用其他更好的工具了吗?