管理数据库更改的最佳方法

时间:2010-02-09 19:32:25

标签: sql database database-design version-control

管理数据库更改的最佳方法是什么?无论数据库客户端的语言如何,我都需要一个解决方案。此外,我希望能够在这些更改中使用特定的数据库功能,例如存储过程,触发器等。

6 个答案:

答案 0 :(得分:13)

首先,确保您已编写整个数据库构建脚本,以便在需要时重建数据库。

然后应将每个更改写为更新脚本。这样,您就可以针对数据库单独运行每个更改。

将更改提交到代码库后,将更改脚本与构建过程合并,以便自动发生...然后在出现任何问题时归档更改脚本。

答案 1 :(得分:7)

首先,将所有数据库更改放在脚本中并将它们放入源代码管理系统中。

接下来删除开发人员拥有的任何生产权限。正好两个人应该在中小型商店,指定的dba和他或她指定的替代品中拥有生产权。一旦开发人员无法对prod进行更改,您会发现更容易让他们实际编写和使用脚本。

永远不要在首次加载到QA或登台的prod上运行脚本。如果脚本存在问题,则应在此时找到。

答案 2 :(得分:4)

使用idempotent change scripts(也许可以查看LiquiBasedbdeploy)。

答案 3 :(得分:1)

不确定您在这里问的是什么,但如果它是管理架构更改的好方法,并且在版本和部署之间保持同步,那么Visual Studio Database Edition很难出错。生命中唯一的目的是管理数据库模式更改,验证模式,构建和生成部署脚本。如果您有Visual Studio Developer Edition或Visual Studio Team Suite,则可以免费获得它。

答案 4 :(得分:0)

好吧,我们目前正在使用Redgate的工具带,其中包含数据库比较,数据比较等。

您还可以使用任何源代码控制来跟踪对数据库对象的更改。

答案 5 :(得分:0)

就我而言,我为这项工作构建了一个SH脚本:

https://github.com/reduardo7/db-version-updater

一个MySQL脚本:

https://github.com/reduardo7/db-version-updater-mysql