是否有类似ActiveRecord :: Migration for .NET的东西?

时间:2011-03-05 00:16:41

标签: .net tsql activerecord

我在rails ActiveRecord::Migration类上玩过ruby,我觉得保持数据库模式的版本是多么容易。我想在我的ASP.NET项目中做类似的事情,我想知道是否有人听说过一个工具可以执行ActiveRecord::Migration除了.NET之外的工作。

我认为不需要在C#或ruby代码中定义我的SQL脚本,我只想编写SQL。但是有没有一个工具可以管理SQL脚本并跟踪运行所需的脚本以实现同步?

4 个答案:

答案 0 :(得分:3)

migratordotnet是一个数据库版本控制系统,就像Ruby on Rail的Migrations一样。其目的是自动化您的数据库更改,并帮助在整个环境中保持这些更改的同步。

答案 1 :(得分:3)

以下是专注于跨数据库兼容性的问题:https://github.com/dradovic/MigSharp/wiki/Feature-Overview

编写一次迁移,让它们在不同的平台上运行。

答案 2 :(得分:1)

Visual Studio中的数据库项目具有您需要的功能。您可以进行模式比较以跟踪模式版本之间的差异。他们也可以处理部署,但您的部署需求可能不同。

Database Projects @ MSDN

还可以使用其他第三方工具,例如Redgate的SQL Compare。

SQL Compare by Redgate

<强>加了:

不幸的是,这些都没有对git的内在支持。但是,如果你不介意自己完成大部分工作,这不会阻止你弥补差距。

使用Visual Studio,您可以使用MSBuild自动运行与编译操作关联的脚本/可执行文件。从那里,你可以附加自己与git的交互。

MSBuild Reference @ MSDN

如果您正在寻找可以从git自动部署架构更改的工具,我目前不知道存在任何架构更改;但你可以使用SMO自己动手。它具有为SQL Server对象编写脚本和针对SQL Server执行脚本所需的所有功能。您可能必须为表更改执行自己的增量脚本(为安全起见),但您可以删除/替换许多其他非数据对象(存储过程,用户功能等)。

SQL Server Management Objects @ MSDN

答案 3 :(得分:1)

Red Gate正在考虑迁移功能,该功能将与SQL Source Control和SQL Compare集成。如果您对此感兴趣,请考虑填写我们的研究调查,并告诉我们您的要求是什么。填写调查表还可以加入我们的早期访问计划。

http://www.surveymk.com/s/migrations