Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL迁移工具_C#_.net_Sql Server - Fatal编程技术网

C# SQL迁移工具

C# SQL迁移工具,c#,.net,sql-server,C#,.net,Sql Server,我想写一个SQL迁移工具。该工具必须: 将新脚本合并到文件夹中, 验证这些脚本的合并, 对数据库运行这些脚本。 如果发生验证错误,则突出显示无效行。 如果脚本部署成功,我希望将此信息与版本和其他相关信息一起保存在数据库中。 我可以用一些验证框架来实现这一点,或者我可以使用nHibernate吗?不完全是你想要的,但我想我知道你想要实现什么 以及NHibernate的模式更新程序部分 这个博客有一个代码示例。 试试dbourcetools。 通过使用补丁引擎,您可以在已知状态下对数据库可靠地测试补

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

将新脚本合并到文件夹中, 验证这些脚本的合并, 对数据库运行这些脚本。 如果发生验证错误,则突出显示无效行。 如果脚本部署成功,我希望将此信息与版本和其他相关信息一起保存在数据库中。
我可以用一些验证框架来实现这一点,或者我可以使用nHibernate吗?

不完全是你想要的,但我想我知道你想要实现什么

以及NHibernate的模式更新程序部分

这个博客有一个代码示例。 试试dbourcetools。 通过使用补丁引擎,您可以在已知状态下对数据库可靠地测试补丁脚本。 它是一个开源工具,结合了VisualStudioDatabaseEdition和MSSQLSManagementStudio的功能。 理想情况下,您希望测试在任何类型的迁移中运行的所有脚本。 为什么需要存储脚本中是否发生验证错误? 当然这意味着脚本没有被正确测试?
玩得开心。

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

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

除了支持向前迁移外,FluentMigrator还支持不同的迁移方式,以及称为概要文件的选择性迁移和执行任意SQL