使用手动生成的脚本进行数据库更改

run*_*ier 5 .net c# database sql-server database-versioning

我的需求是相当基本的,我不想重建轮子.我喜欢编写我的数据库脚本并编写脚本以将其从一个版本更新到下一个版本,即001-create-tables.sql,002-alter-column.sql等.

我想要的是一个简单的工具命令行或MsBuild,它将查看数据库,查看数据库所处的版本(使用某些表约定)并运行编号大于当前数据库版本的文件夹中的所有脚本.如果脚本失败/抛出错误并在此时停止,我也希望该工具回滚一个脚本.

这就是我想要的但我不介意改变我的约定,虽然我想写自己的sql脚本.我也希望该工具是免费的或开源的,因为我不需要太多.由于我的项目是C#,我更喜欢在.Net中构建工具

Gal*_*ian 6

你看过Open DBDiff了吗?这可能是一个好的开始.

如果你改变主意关于开源,Red Gate的SQL Compare就是去IMO的方式.


run*_*ier 0

好吧,我不喜欢我在那里找到的任何选项。我找到了一些很好的工具来创建脚本,但没有任何工具可以跟踪数据库中的版本并运行新脚本。不管怎样,我继续推出自己的开源工具来完成工作。如果您想使用它,您可以从 CodePlex 下载它,名为KissDB。我还在我的博客博客上发表了一篇关于它的博客文章。RunXc