Git 是一个优秀的工具:您可以切换到以前的版本并将历史记录一分为二来定位错误。
但实际上您不能,因为当您切换到旧版本时,您的数据库仍处于最新状态,因此您的网络应用根本无法运行。
有没有关于如何解决这个问题的通用解决方案?
一些想法:
- 我无法将整个数据库添加到每次提交中
- 我无法使用前后迁移,因为我在向后迁移中丢失了数据。数据不是结构的一部分,但方便调试。
- 当然,我需要一些东西来与 Git 同步(一个钩子(Hook)?),否则我会得到额外的时间费用,这不太好。
最佳答案
最干净的解决方案是使用一个脚本来创建带有虚拟/测试数据的数据库。由于该脚本和您的数据库结构将被版本控制,因此它始终会创建正确的脚本。
但是,您无法自动执行向后迁移,因为有关当前提交后发生的结构更改的信息不可用。
关于Git 和数据库状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10633020/