Git 红门数据库依赖项

Git 红门数据库依赖项,git,repository,tfsbuild,redgate,Git,Repository,Tfsbuild,Redgate,我是Redgate的新手,正在寻找有关如何最好地设置数据库存储库的帮助 我有多个网站和多个数据库,它们都有自己的存储库。数据库可以与一个或多个站点相关联 我以以下方式创建了我的存储库: wwwroot/webapps/site1 wwwroot/webapps/site2 wwwroot/webapps/site3 wwwroot/databases/db1 wwwroot/databases/db2 wwwroot/databases/db3 wwwroot/databases/db4 例

我是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,使用基于任务的构建)来部署我的代码,我必须确保任何相关的DB更改都作为另一个构建的一部分单独部署

是否可以以某种方式将我的代码构建链接到数据库更改,并将它们一起部署?我的存储库设置是否正确,或者是否有更好的设置方法?任何指导都将不胜感激

更多信息来描述我的问题

    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(数据库存储库)。当前的设置将要求我创建两个构建—一个用于代码,另一个用于数据库

功能_B(代码存储库)没有依赖项

feature_C(代码存储库)依赖于feature_C(数据库存储库)

我只能通过指定一个特性来创建一个构建,因为我的代码和数据库存储库是分开的,我不得不在两个构建中完成这项工作

我希望通过创建一个构建来实现上述目标,该构建将同时推出我的数据库和代码更改。我不知道该怎么做最好,也不知道是否可能。如果不可能,可以有人建议一个替代方案

我不想在我的web文件夹中添加DB存储库,因为同一数据库在多个网站中使用,这将导致问题

例如,以下内容对我适用,但这意味着将多次创建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相同的位置:
  • 如果克隆存储库时出现授权问题,请启用“允许脚本访问OAuth令牌”:


    难道您不能在部署数据库的TFS构建中添加第二个构建任务/步骤吗?它不需要是一个完全独立的构建。您的意思是当数据库发生更改时要触发TFS构建吗?您使用的是哪个版本的TFS?您使用的是XAML构建还是基于任务的构建?@David-我不能按照您的建议执行,因为构建必须指向某个功能。由于代码和数据库repo是分开的,我不能在第二次repo中包含另一点构建。@Cece-我使用TFS 2015和基于任务的构建。我不想触发TFS构建,我想做的是能够在我的代码repo中创建一个功能,在我的db repo中创建相同的功能,并且在创建构建时以某种方式将来自代码和db repo的功能包括在一起。我不知道这是否可以做到,所以我愿意接受建议。功能是如何定义的?是通过变更集还是通过工作项?这可能是建议的最好/唯一的解决方案,但它仍然不是我所希望的。以这种方式设置我的构建很好,但这意味着在运行构建之前,我必须更新构建配置并更改命令行代理步骤指向的功能,或者在不需要的情况下删除它。我只想能够在不必每次更改构建配置的情况下对构建进行排队,这是当前在一个构建中获得两个repo的唯一方法。如果不需要命令行,可以在生成定义中禁用它。需要时,启用它。