版本控制系统将表的脚本定义与签入状态进行比较。所以我猜许多cvs会将表的列重新排序视为一个变化。 由于tsql不支持在表的中间添加新列,并且因为在关系数据库中排序无关紧要,如果列顺序可能发生变化,表定义的版本控制有什么好的做法。 有时您可能需要在表格中间重做一个删除列。
答案 0 :(得分:1)
您应该存储脚本以在源代码管理中设置数据库,而不是尝试从数据库的状态对这些脚本进行反向工程。然后,列顺序变为非问题。
具体来说,我看到两种方案运作良好。在第一个中,每个数据库模式更新脚本都有一个序列号,数据库跟踪最后一个应用的序列号。在第二个中,每个数据库模式更新脚本都有一个UUID,数据库跟踪已应用的所有UUID。
我会查看书籍Refactoring Databases以获取更多详细信息以及如何管理数据库更改的示例。