管理数据库更改的最佳方法是什么?无论数据库客户端的语言如何,我都需要一个解决方案。此外,我希望能够在这些更改中使用特定的数据库功能,例如存储过程,触发器等。
答案 0 :(得分:13)
首先,确保您已编写整个数据库构建脚本,以便在需要时重建数据库。
然后应将每个更改写为更新脚本。这样,您就可以针对数据库单独运行每个更改。
将更改提交到代码库后,将更改脚本与构建过程合并,以便自动发生...然后在出现任何问题时归档更改脚本。
答案 1 :(得分:7)
首先,将所有数据库更改放在脚本中并将它们放入源代码管理系统中。
接下来删除开发人员拥有的任何生产权限。正好两个人应该在中小型商店,指定的dba和他或她指定的替代品中拥有生产权。一旦开发人员无法对prod进行更改,您会发现更容易让他们实际编写和使用脚本。
永远不要在首次加载到QA或登台的prod上运行脚本。如果脚本存在问题,则应在此时找到。
答案 2 :(得分:4)
使用idempotent change scripts(也许可以查看LiquiBase或dbdeploy)。
答案 3 :(得分:1)
不确定您在这里问的是什么,但如果它是管理架构更改的好方法,并且在版本和部署之间保持同步,那么Visual Studio Database Edition很难出错。生命中唯一的目的是管理数据库模式更改,验证模式,构建和生成部署脚本。如果您有Visual Studio Developer Edition或Visual Studio Team Suite,则可以免费获得它。
答案 4 :(得分:0)
好吧,我们目前正在使用Redgate的工具带,其中包含数据库比较,数据比较等。
您还可以使用任何源代码控制来跟踪对数据库对象的更改。
答案 5 :(得分:0)