我的设置是服务器上的.NET和Oracle作为数据库。我正在寻找一种方便的方法来持续部署SQL更改。
到目前为止,我有一个构建服务器(Teamcity),它从DVCS中提取更改并创建一个部署包。然后我将包导入IIS。
这样可以正常工作,但不会发生任何SQL部署。我不知道如何将SQL部分集成到这个过程中。
SQL更改存储在文件中,并按日期和时间命名,并提交到DVCS。
我的要求是能够部署到不同版本的系统,只运行所需的SQL脚本。这甚至可能吗?
我想省略任何付费的第三方工具。
编辑 - 在此过程中不需要创建新数据库,它已经存在
答案 0 :(得分:1)
根据您认为的第三方工具,您可以查看FluentMigrator library。您可以从自己的应用程序中引用它,使其看起来不像第三方工具。
如果你不能使用第三方库,那么你必须自己动手:
答案 1 :(得分:0)
我这样做的方式,虽然不理想已经工作了多年,我保留sql脚本源于一个目录结构,该目录结构被压缩并与我的工件一起部署以及我编写的安装程序,它提取并迭代目录并根据文件夹以依赖顺序运行脚本:
我在每次部署时运行所有脚本。在每个sql脚本中,我处理更新中的操作,
表和索引(如果存在),跳过,否则创建 存储过程,视图,触发器,删除和重新创建(以及重新分配权限) 然后是一个更新脚本来执行添加列,重命名等操作。
这绝对是我在持续部署环境中必须管理的最困难的事情。我希望这会有所帮助。