我一直在构建一个SCM环境(它必须是PCI兼容的,但这与这个问题无关)。
我已经到了想要自动更新数据库的地步,但我不是百分之百确定这是最好的前进方式。
假设我想向DB表添加一个字段。很容易将其添加到开发环境中,但是如何将其扩展到实际环境中呢?我看了一下MySQL::Diff,但花时间把它完全自动化的想法对我来说似乎有点过头了。
我希望有一个回滚选项,并希望避免完全数据库复制的过度杀伤力。我在SCM上找到的所有教程似乎要么没有涵盖这一点,要么说它可能非常混乱。有没有这方面的最佳实践?或者,我应该只使用MySQL diff来识别更改并备份单个表,然后在推出时手动调整吗?
发布于 2009-09-08 05:00:43
我们存储git中所需更改的SQL脚本,以及包含这些更改的分支。
可以将此SQL脚本重复应用于生产数据的“新”副本,以验证它是否能按预期工作。
我们的强烈建议数据库管理员或发布工程师在进行适当的备份和恢复措施后应用这些更改。
--
Navicat MySQL也是一个非常棒的工具。他们的schema diff工具非常适合验证更改,甚至应用更改。
https://stackoverflow.com/questions/1392024
复制相似问题