首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当sqlproj.user文件不在源代码管理中时,在DACPAC构建/部署过程中发生了什么?

当sqlproj.user文件不在源代码管理中时,在DACPAC构建/部署过程中发生了什么?
EN

Stack Overflow用户
提问于 2021-01-08 01:26:18
回答 2查看 398关注 0票数 0

是我遗漏了什么,还是这是我的错:

Q1:,我应该把projname.sqlproj.user文件添加到源代码管理中吗?

Q2:应该以某种方式将.publish.xml文件合并到构建步骤中吗?

奖励Q:,在没有包含所有关键标志的.sqlproj.user文件的情况下,构建服务器上发生了什么?

背景:

在我的大型企业中,我的团队拥有第一个使用构建服务器生成的.sqlproj向sql交付.dacpac的CI/CD管道。它起作用了,我正在学习dacpac绳索。

我在玩站在我的团队和灾难之间的标志(也就是说,DropObjectsNotInSource=false),和git没有看到.sqlproj文件中的变化。很明显,这些标志存储在.user文件中,而不是.sqlproj文件中!?(projname.sqlproj.user)

通常的做法是.gitignore *.user文件,MS知道这一点,所以我疯了吗?我不希望一个较新的开发人员开始播放旗子,而不会看到SC中的变化。

附加背景

我们的目标之一是让所有发布事件都通过ci/cd管道处理;因此,我们并不真正希望打开一条路径来手动/直接发布更改,甚至可以发布到Dev env。太多的长期开发人员都有一个非常坏的习惯,就是完全跳过Dev env,直接去QA,然后再试一试。因此,我们可能需要通过在QA/Prod中明确拒绝个人的更改/控制访问权限,但甚至在Dev env中拒绝他们的访问权限。

堆叠:

VS2017 (2019年是一种选择)

SSDT

GitHubEnteprise

TeamCity

八爪鱼

SQLServer2016

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-08 13:42:13

这是一个"publish.xml“或发布参数/配置文件设置。当我们开始使用sqlpackage.exe时,我们会为具有这些设置的适当的发布配置文件提供选项。您还可以在命令行级别设置它。这绝对不是一个*.user文件设置。

尽管如此,我通常还会在项目中包含那些发布概要文件,供开发人员使用(本地的、开发的,其他的),这样他们就可以双击其中的一个,并使用预定义的设置启动本地/ dev构建。(通常带有一个警告,比如--在点击脚本“发布”之前查看预览)然后我们可以将这些发布概要文件包含在我们的部署/发布操作中。

如果使用该路径,唯一的警告是,如果使用“发布”文件夹,则可能需要调整.gitignore。如果使用gitignore repo文件,默认情况下Visual项目将忽略该文件夹名。

票数 2
EN

Stack Overflow用户

发布于 2021-01-08 14:33:18

Q1 -不,你不应该。开发人员可以在他们的机器上有非常不同的设置和首选项,这将是一个巨大的混乱,把这个文件添加到源代码管理中。这个文件应该是gitignored的(如果您使用git)。您可以看看我的回购,在那里,我开始创建类似SSDT模板的东西。它也有.gitignore模板。

Q2 -用于发布的*.publish.xml配置文件。您可以为不同的环境设置不同的设置。DropObjectsNotInSource=false设置应该驻留在该配置文件中,因为您可能希望将这些对象放在dev env上,而不是放在prod中。但是,如果没有特定的用途,那么对于所有环境,我都会使用这个设置= false。

奖金Q-正如已经说过的,*.user文件不应该参与部署。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65622220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档