使用DVCS [Mercurial]在版本控制下获取我的数据库

use*_*348 7 sql database mercurial dvcs

对整个数据库进行版本控制的最佳方法是什么?

为每个数据库对象(表,视图,过程...)创建一个文件,或者更确切地说,为所有DDL脚本创建一个文件以及任何新的更改都将放在一个单独的文件中?

如何处理数据库管理器工具中的更改?

我想为任何类型的RDBMS提供通用解决方案.

还有其他选择吗?

Mic*_*sov 1

如果您需要通用解决方案 - 将所有内容放入脚本(简单文本文件)中并置于版本控制系统下(可以使用任何 VCS)。

将类似的数据库对象分组到脚本中将取决于您的要求。

所以你可以例如:

将表/索引/存储在一个或多个脚本中每个过程存储在单独的脚本中或将小过程组合到一个脚本中。

但是,使用这种方法需要记住一件重要的事情:如果直接在数据库中更改表/视图/过程,请不要忘记更改脚本,并且在更改脚本后不要在数据库中创建/重新创建/编译数据库对象。