源代码管理中的数据库 - 完整或差异SQL?

时间:2012-10-16 23:37:19

标签: sql database version-control

所以我努力为我的所有数据库更改制作SQL脚本,以便它们可以提交到源代码控制,但是SQL应该充满差异吗?

例如,如果我的初始提交有一个'create table'并且稍后的更新需要从该表中删除一列,我是否应该修改'create'语句以使其不包含该列或者我是否保持不变并添加'alter table'语句?

我认为如果它的差异,可以在任何状态下获取数据库并将其更新为以后的状态。尽管有完整的,但总是必须从一个新的数据库开始。

1 个答案:

答案 0 :(得分:1)

两者。您有每个DB对象的单独“创建”脚本。这可以用于从头开始创建DB。此外,这使得提交更改更容易在视觉上进行区分 - 除了读取(有时是详细的)更改脚本之外,您还可以看到对象的创建脚本的更改。

同样编写差异SQL脚本,以这样的方式命名,以便按顺序排序和应用。这使您可以将X点的DB带到当前架构。