如何使用.NET+;神谕

如何使用.NET+;神谕,.net,oracle,deployment,teamcity,.net,Oracle,Deployment,Teamcity,我的设置是服务器上的.NET和Oracle作为数据库。我正在寻找一种方便的方法来持续部署SQL更改 到目前为止,我有一个构建服务器(Teamcity),它从DVCS中提取更改并创建部署包。然后我将包导入IIS 这很好,只是没有发生任何SQL部署。我不知道如何将SQL部分集成到这个过程中 SQL更改存储在文件中,按日期和时间命名,并提交到DVCS中 我的要求是能够部署到不同版本的系统,只运行所需的SQL脚本。这可能吗 我想省略任何付费的第三方工具 编辑—在这个过程中不需要创建一个新的数据库,它已经

我的设置是服务器上的.NET和Oracle作为数据库。我正在寻找一种方便的方法来持续部署SQL更改

到目前为止,我有一个构建服务器(Teamcity),它从DVCS中提取更改并创建部署包。然后我将包导入IIS

这很好,只是没有发生任何SQL部署。我不知道如何将SQL部分集成到这个过程中

SQL更改存储在文件中,按日期和时间命名,并提交到DVCS中

我的要求是能够部署到不同版本的系统,只运行所需的SQL脚本。这可能吗

我想省略任何付费的第三方工具


编辑—在这个过程中不需要创建一个新的数据库,它已经存在

取决于您所考虑的第三方工具,您可以查看一下。您可以从自己的应用程序中引用它,这样它就不会看起来像第三方工具

如果无法使用第三方库,则必须自己使用:

  • 在数据库中维护一个表,该表将包含在该特定数据库上执行的所有增量脚本的列表。或者,只存储执行的最后一个脚本或“DB版本号”
  • 在脚本中使用命名或编号约定,以便确定应用了哪些脚本和未应用哪些脚本,并按正确的顺序应用脚本
  • 编写一个数据库迁移工具,将部署中包含的脚本列表与目标数据库中的“版本”表进行比较,确定应该执行哪些部署的脚本,执行它们,然后相应地更新“版本”表
我这样做的方式虽然多年来一直不理想,但我将sql脚本保存在一个目录结构中,该目录结构与我编写的安装程序一起压缩和部署,该安装程序提取并迭代目录,并根据文件夹按依赖顺序运行脚本:

  • 桌子
  • 观点
  • 过程
  • 触发
  • 更新
我在每次部署时运行所有脚本。在每个sql脚本中,我处理更新中的操作

对于表和索引(如果存在),请跳过,否则请创建 存储过程、视图、触发器、删除和重新创建(以及重新分配权限) 然后是一个更新脚本,用于执行添加列、重命名等操作


在我们的持续部署环境中,这无疑是我不得不处理的最困难的事情。我希望这有帮助。

你好。你能说得更具体些吗?你有什么问题?SQL的持续集成还是什么?