我是Redgate的新手,希望找到一些关于如何最好地设置我的数据库存储库的帮助。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使用基于任务的构建),其部署我的代码,我必须确保任何相关的数据库更改为另一版本的一部分单独部署。
是否有可能以某种方式将我的代码构建链接到数据库更改让他们一起部署?我的存储库设置是否正确,或者有更好的方法来设置它?任何指导将不胜感激。
更多信息来描述我的问题。
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(DB存储库)。目前的设置将要求我为我的代码创建两个构建版本,另一个为我的数据库创建。
feature_B(代码资源库)没有依赖性
feature_C(代码库)是依赖于feature_C(DB信息库)。
我只能通过指定功能创建一个版本,因为我的代码和DB库是分开的,我不得不做这两个版本。
我想通过创建一个构建,将推动我的数据库和代码,同时改变了实现上述。我不知道如何做到这一点,或者如果可能的话。如果这是不可能的,有人可以提出一个替代方案。
我不希望里面添加我的网络文件夹中的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\
你就不能有第二个建设任务/步骤为您的TFS的一部分构建部署数据库?它不需要是完全独立的版本。 –
你的意思是你想在数据库发生变化时触发一个TFS构建?你使用的是哪个版本的TFS?你使用XAML构建还是基于任务的构建? –
@大卫 - 我不能做你建议的内容,因为构建必须指向一个功能。由于代码和数据库回购是分开的,我不能在第二回购中包含另一点。 –