我玩过ruby on rails的ActiveRecord::Migration
类,我喜欢它如何轻松地将数据库模式保持版本化。我想在我的ASP.NET项目中做类似的事情,我想知道是否有任何工具可以像ActiveRecord::Migration
一样为.NET完成这项工作。
我不认为需要在C#或ruby代码中定义我的SQL脚本,我只想编写SQL。但是是否有一个工具来管理SQL脚本并跟踪您需要运行哪些脚本以保持同步?
我玩过ruby on rails的ActiveRecord::Migration
类,我喜欢它如何轻松地将数据库模式保持版本化。我想在我的ASP.NET项目中做类似的事情,我想知道是否有任何工具可以像ActiveRecord::Migration
一样为.NET完成这项工作。
我不认为需要在C#或ruby代码中定义我的SQL脚本,我只想编写SQL。但是是否有一个工具来管理SQL脚本并跟踪您需要运行哪些脚本以保持同步?
migratordotnet是一个数据库版本控制系统,类似于Ruby on Rail的迁移。其目的是自动化数据库更改,并帮助在各个环境中保持这些更改的同步。
在Visual Studio中,数据库项目具有您所需的功能。 您可以执行模式比较以跟踪模式版本之间的差异。 它们还可以处理部署,尽管您的部署需求可能会有所不同。
还有其他第三方工具可供使用,例如Redgate的SQL Compare。
补充:
不幸的是,这些都没有内在的git支持。 但是,如果您不介意自己完成大部分工作,则不会阻止您填补这一差距。
使用Visual Studio,您可以使用MSBuild自动运行与编译操作相关联的脚本/可执行文件。 然后,您可以附加自己与git的交互。
如果你正在寻找一种工具,可以自动从git部署模式更改,我目前不知道有任何存在的工具;但是你可以使用SMO来自己编写。它具有您需要的所有功能,以便能够编写SQL Server对象脚本并执行针对SQL Server的脚本。您可能需要为表更改编写自己的增量脚本(出于安全考虑),但是您可以为许多其他非数据对象(存储过程、用户函数等)执行删除/替换操作。Red Gate正在考虑一项迁移功能,该功能将与SQL Source Control和SQL Compare集成。如果您对此感兴趣,请考虑填写我们的研究调查并告诉我们您的要求。填写调查还将使您有资格加入我们的早期访问计划。