Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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# 在Oracle/SqlServer和SqlLite上执行数据库迁移的解决方案_C#_Sql Server_Oracle_Sqlite_Database Versioning - Fatal编程技术网

C# 在Oracle/SqlServer和SqlLite上执行数据库迁移的解决方案

C# 在Oracle/SqlServer和SqlLite上执行数据库迁移的解决方案,c#,sql-server,oracle,sqlite,database-versioning,C#,Sql Server,Oracle,Sqlite,Database Versioning,我正在寻找一种工具(最好是开源的),可以在TFS内部进行数据库迁移和版本控制,并且能够在部署/构建期间自动部署 背景 我们开发了一个经常更新的应用程序,有时会更改数据库,有时不会更改。该数据库运行在Oracle11g上,还有一个Sqlite数据库可以运行测试。我们将NHibernate与Fluent NHibernate结合使用作为ORM(映射的Fluent NHibernate) 现状 此时,数据库更改是手动完成的。更改数据库创建的流畅映射,并编写SQL脚本来更改/删除/创建我们需要的任何内容

我正在寻找一种工具(最好是开源的),可以在TFS内部进行数据库迁移和版本控制,并且能够在部署/构建期间自动部署

背景 我们开发了一个经常更新的应用程序,有时会更改数据库,有时不会更改。该数据库运行在Oracle11g上,还有一个Sqlite数据库可以运行测试。我们将NHibernate与Fluent NHibernate结合使用作为ORM(映射的Fluent NHibernate)

现状 此时,数据库更改是手动完成的。更改数据库创建的流畅映射,并编写SQL脚本来更改/删除/创建我们需要的任何内容。 要转到Test/Acceptence/Production,我们根据不同的配置构建,然后将内容复制到特定的服务器,并在数据库上运行特定的SQL脚本

缺点 NHibernate的schemaupdate不允许破坏性更新,因此如果我们正在寻找NHibernate解决方案,则必须手动完成

优先情况 以上是一个可行的解决方案,但现在我们需要对这些更改进行版本化,以便在使用部署新版本时可以进行升级/回滚(如果需要)。建议在将新版本部署到数据库时自动执行此操作

问题
  • 是否有一个迁移工具thas使用Expand和CONTACT来生成模式的
  • 它能与Oracle11g、SqLite和SqlServer一起工作吗
  • 继续使用NHibernate/Fluent NHibernate的可能性
  • 自动部署特定构建的好方法(不是必须拥有的,有足够的工具来实现这一点,但可能有一些东西可以完成所有工作)
  • 调查
      • 没有回滚
      • 无法使其与我们的映射一起工作
      • 无法与NHibernate映射结合使用它自己的Fluent接口
      • 该工具无法轻松与我们的环境集成
    我希望这是清楚的,如果你不想发表评论,你看了吗?它支持Oracle。