redgate 数据库依赖
redgate database dependencies
我是 Redgate 的新手,正在寻求有关如何最好地设置我的数据库存储库的帮助。
我有多个站点和多个数据库,它们都有自己的存储库。一个数据库可以与一个或多个站点相关联。
我按以下方式创建了我的存储库;
wwwroot/webapps/site1
wwwroot/webapps/site2
wwwroot/webapps/site3
wwwroot/databases/db1
wwwroot/databases/db2
wwwroot/databases/db3
wwwroot/databases/db4
例如site1,2,3都使用了db1,但是site2也关联了db2。针对 db1 发生的更改适用于所有站点,但我希望能够签入对 db1 的更改,而不管我正在处理哪个站点存储库。
在为每个单独的存储库创建构建时,所有这些工作正常,但我想将我的代码和数据库更改部署为同一构建的一部分。
目前,我有一个部署我的代码的 TFS 构建(TFS 2015 和使用基于任务的构建),我必须确保任何相关的数据库更改作为另一个构建的一部分单独部署。
是否有可能以某种方式 link 我的代码构建到数据库更改让它们一起部署?我的存储库设置是否正确或是否有更好的设置方法?任何指导将不胜感激。
更多信息来描述我的问题。
Code repository
wwwroot/webapps/site1/feature_A
wwwroot/webapps/site1/feature_B
wwwroot/webapps/site2/feature_C
DB repository
wwwroot/databases/db1/feature_A
wwwroot/databases/db1/feature_C
使用上面的例子;
feature_A(代码存储库)依赖于 feature_A(数据库存储库)。当前设置将要求我创建两个构建,一个用于我的代码,另一个用于我的数据库。
feature_B(代码库)没有依赖关系
feature_C(代码库)依赖于feature_C(数据库库)。
我只能通过指定功能来创建构建,因为我的代码和数据库存储库是分开的,我不得不在两个构建中执行此操作。
我想通过创建一个将同时推出我的数据库和代码更改的构建来实现上述目标。我不知道如何最好地做到这一点,或者是否可能。如果不可能,有人可以提出替代方案。
我不想在我的 Web 文件夹中添加数据库存储库,因为同一个数据库在多个网站上使用,这会导致问题。
例如,以下内容对我有用,但这意味着将多次创建 DB1 存储库。
wwwroot/webapps/site1\Code\
wwwroot/webapps/site1\DB1\
wwwroot/webapps/site2\Code\
wwwroot/webapps/site2\DB1\
wwwroot/webapps/site2\DB2\
wwwroot/webapps/site3\Code\
wwwroot/webapps/site3\DB1\
所以你想在一个构建中获得两个存储库。您可以查看以下步骤:
- 在构建定义中,指定一个存储库:
- 然后添加命令行任务以使用git命令将另一个存储库克隆到与步骤 1 相同的位置:
如果克隆仓库时出现授权问题,启用"Allow Scripts to Access OAuth Token":
我是 Redgate 的新手,正在寻求有关如何最好地设置我的数据库存储库的帮助。
我有多个站点和多个数据库,它们都有自己的存储库。一个数据库可以与一个或多个站点相关联。
我按以下方式创建了我的存储库;
wwwroot/webapps/site1
wwwroot/webapps/site2
wwwroot/webapps/site3
wwwroot/databases/db1
wwwroot/databases/db2
wwwroot/databases/db3
wwwroot/databases/db4
例如site1,2,3都使用了db1,但是site2也关联了db2。针对 db1 发生的更改适用于所有站点,但我希望能够签入对 db1 的更改,而不管我正在处理哪个站点存储库。
在为每个单独的存储库创建构建时,所有这些工作正常,但我想将我的代码和数据库更改部署为同一构建的一部分。
目前,我有一个部署我的代码的 TFS 构建(TFS 2015 和使用基于任务的构建),我必须确保任何相关的数据库更改作为另一个构建的一部分单独部署。
是否有可能以某种方式 link 我的代码构建到数据库更改让它们一起部署?我的存储库设置是否正确或是否有更好的设置方法?任何指导将不胜感激。
更多信息来描述我的问题。
Code repository
wwwroot/webapps/site1/feature_A
wwwroot/webapps/site1/feature_B
wwwroot/webapps/site2/feature_C
DB repository
wwwroot/databases/db1/feature_A
wwwroot/databases/db1/feature_C
使用上面的例子;
feature_A(代码存储库)依赖于 feature_A(数据库存储库)。当前设置将要求我创建两个构建,一个用于我的代码,另一个用于我的数据库。
feature_B(代码库)没有依赖关系
feature_C(代码库)依赖于feature_C(数据库库)。
我只能通过指定功能来创建构建,因为我的代码和数据库存储库是分开的,我不得不在两个构建中执行此操作。
我想通过创建一个将同时推出我的数据库和代码更改的构建来实现上述目标。我不知道如何最好地做到这一点,或者是否可能。如果不可能,有人可以提出替代方案。
我不想在我的 Web 文件夹中添加数据库存储库,因为同一个数据库在多个网站上使用,这会导致问题。
例如,以下内容对我有用,但这意味着将多次创建 DB1 存储库。
wwwroot/webapps/site1\Code\
wwwroot/webapps/site1\DB1\
wwwroot/webapps/site2\Code\
wwwroot/webapps/site2\DB1\
wwwroot/webapps/site2\DB2\
wwwroot/webapps/site3\Code\
wwwroot/webapps/site3\DB1\
所以你想在一个构建中获得两个存储库。您可以查看以下步骤:
- 在构建定义中,指定一个存储库:
- 然后添加命令行任务以使用git命令将另一个存储库克隆到与步骤 1 相同的位置:
如果克隆仓库时出现授权问题,启用"Allow Scripts to Access OAuth Token":