我知道这个问题很老,但我正在做你所描述的。
我有一项工作每 X 分钟运行一次,并将数据库的当前状态放入版本控制中(对我们来说它是反复无常的,但您可以使用 git 或其他方式实现完全相同的目标)。
cd c:\data\SourceCodeDirectory
hg pull
hg update
if not exist "c:\data\SourceCodeDirectory\databaseName" mkdir "c:\data\SourceCodeDirectory\databaseName"
cd "c:\Program Files (x86)\Red Gate\SQL Compare 11"
sqlcompare /s1:DBServer /db1:databaseName /scr2:"c:\data\SourceCodeDirectory\databaseName" /synchronize
cd c:\data\SourceCodeDirectory\databaseName
hg add
hg commit -m "Database Changes" -u DatabaseSchemaUser
hg push
一旦此作业运行,对数据库所做的任何更改都将在版本控制中。