SQL迁移工具

时间:2010-07-17 19:09:24

标签: c# .net sql-server

我想编写一个SQL迁移工具。该工具必须:

  • 合并文件夹中的新脚本
  • 验证这些脚本的合并,
  • 针对数据库运行这些脚本。
  • 如果发生验证错误,则突出显示无效行。
  • 如果脚本成功部署,我想将此信息保存在包含版本和其他相关信息的数据库中。

我可以使用一些验证框架,或者我可以使用nHibernate吗?

3 个答案:

答案 0 :(得分:8)

这里的派对有点晚了,但这是对名单的一个很好的补充: -

<强> FluentMigrator

FluentMigrator是一个用C#编写的.NET数据库迁移框架。基本思想是您可以创建迁移,这些迁移只是派生自Migration基类的类,并且具有附加了唯一版本号的Migration属性。执行FluentMigrator后,您可以告诉它要迁移到哪个版本,它将运行所有必要的迁移,以便将您的数据库升级到该版本。

除了正向迁移支持之外,FluentMigrator还支持不同的方式来执行迁移以及称为配置文件和执行任意SQL的选择性迁移。

答案 1 :(得分:1)

不完全是你要求的,但我想我知道你想要达到的目标。

http://code.google.com/p/migratordotnet/

http://ayende.com/Blog/archive/2009/05/01/nhibernate-validator.aspx

还有Schema Updater(NHibernate的一部分)

此博客有一个代码示例。 http://morten.lyhr.dk/2008/03/nhibernates-schemaupdate-feature.html

答案 2 :(得分:1)

尝试DBSourceTools。 http://dbsourcetools.codeplex.com
通过使用修补引擎,它将允许您针对已知状态的数据库可靠地测试修补程序脚本 它是一个结合了Visual Studio Database Edition和MSSQL Management Studio功能的开源工具 理想情况下,您希望测试在任何迁移中运行的所有脚本 为什么需要存储脚本中是否发生验证错误? 当然这意味着脚本没有正确测试? 玩得开心。