我一直在构建一个SCM环境(必须符合PCI标准,但这与此问题相关)。
我已经到了想要自动化数据库更新的地步,但我并不是百分之百确定这是最好的前进方式。
说我想在DB表中添加一个字段。很容易将它添加到开发环境中,但是如何推广到实时环境呢?我看了一下MySQL::Diff但是花时间完全自动化的想法对我来说似乎有些过分。
我想要一个回滚选项,并希望避免完全数据库重复的过度杀伤。我在SCM上发现的所有教程似乎都没有涵盖这一点,或者说它可能非常混乱。这是最好的做法吗?或者我应该只使用MySQL差异来识别更改并备份单个表,然后再在rollout处进行调整?
答案 0 :(得分:1)
我们使用包含更改的分支存储git中所需更改的SQL脚本。
此SQL脚本可以重复应用于生产数据的“新鲜”副本,验证它是否可以按预期工作。
我们强烈的意见是,在进行适当的备份和恢复措施之后,专注的DBA或发布工程师应该应用这些更改。
-
Navicat MySQL也是一个帮助它的神奇工具。他们的模式差异工具非常适合验证更改,甚至应用它们。