Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ReadyRoll项目:SemVer选项_Sql_Sql Server_Redgate_Readyroll - Fatal编程技术网

Sql ReadyRoll项目:SemVer选项

Sql ReadyRoll项目:SemVer选项,sql,sql-server,redgate,readyroll,Sql,Sql Server,Redgate,Readyroll,我正在尝试使用ReadyRoll项目进行自动化部署。我创建的上一个项目在导入数据库后生成的第一个迁移脚本中,如果TYPE_ID(N'[dbo].[abc_PrintType]')为NULL,则具有以下。我想知道哪个选项签入项目属性以生成同一行代码 GO PRINT N'Print types' GO IF TYPE_ID(N'[dbo].[abc_PrintType]') IS NULL CREATE TYPE [dbo].[abc_PrintType] AS TABLE (...) 您正在寻

我正在尝试使用ReadyRoll项目进行自动化部署。我创建的上一个项目在导入数据库后生成的第一个迁移脚本中,如果TYPE_ID(N'[dbo].[abc_PrintType]')为NULL,则具有以下。我想知道哪个选项签入项目属性以生成同一行代码

GO
PRINT N'Print types'
GO
IF TYPE_ID(N'[dbo].[abc_PrintType]') IS NULL
CREATE TYPE [dbo].[abc_PrintType] AS TABLE
(...)

您正在寻找的选项是添加对象存在性检查

通过在.sqlproj文件的
节点下添加以下代码,可以在项目中启用此功能:


真的

下次导入更改时,生成的脚本将包含
IF EXISTS…
style-guard子句

有关如何配置的更多信息,请参阅ReadyRoll文档:

感谢您提供的解决方案。没有其他方法可以检查此选项吗?我在.sqlproj文件中启用了相同的方法。问题是我以前的迁移不会运行,因为目标数据库中已经存在所有存储的进程、表。我的目标数据库发生了更改,我希望导入相同的更改。刷新后,项目会显示“Build&Deploy Required”,并且不会让我部署项目,因为目标数据库中已经存在对象。如果是第一次部署到数据库,则需要在项目中设置基线。这涉及到将迁移放在1.0.0版本文件夹中,并按照文档中的描述打开semver:鉴于很难判断当前环境的状态,我建议重新开始:1。在数据库中备份试图在Octopus中部署的uu MigrationLog表,并将其从数据库中删除(如果存在)。按照以下文档中的描述在项目中设置基线:3。提交对源代码管理的更改,将新包构建并部署到OctopusI,这样OctopusI就能够解决这个问题。我创建了第二个项目,因为第一个项目一团糟。Octopus在第一个项目中创建的数据库仍然存在,其中包含该数据库中的所有对象。因此,即使我在第二个项目中设置基线,它也会给我一个错误,即对象仍然存在。我删除了从db服务器创建的第一个数据库,并对其进行了备份。