表中的列顺序是否与版本控制相关?

时间:2014-06-25 12:59:50

标签: sql version-control

版本控制系统将表的脚本定义与签入状态进行比较。所以我猜许多cvs会将表的列重新排序视为一个变化。 由于tsql不支持在表的中间添加新列,并且因为在关系数据库中排序无关紧要,如果列顺序可能发生变化,表定义的版本控制有什么好的做法。 有时您可能需要在表格中间重做一个删除列。

1 个答案:

答案 0 :(得分:1)

您应该存储脚本以在源代码管理中设置数据库,而不是尝试从数据库的状态对这些脚本进行反向工程。然后,列顺序变为非问题。

具体来说,我看到两种方案运作良好。在第一个中,每个数据库模式更新脚本都有一个序列号,数据库跟踪最后一个应用的序列号。在第二个中,每个数据库模式更新脚本都有一个UUID,数据库跟踪已应用的所有UUID。

我会查看书籍Refactoring Databases以获取更多详细信息以及如何管理数据库更改的示例。