【发布时间】:2022-01-03 22:14:07
【问题描述】:
我有用于创建分区函数和分区方案的 SQL 脚本。我希望通过 flyway 脚本来处理迁移。我想知道这些 SQL 脚本是否可以被视为可重复脚本或版本化脚本?
同样,我有用于创建 SEQUENCE 的脚本,这应该被视为版本化脚本还是可重复脚本?
【问题讨论】:
标签: sql-server flyway
我有用于创建分区函数和分区方案的 SQL 脚本。我希望通过 flyway 脚本来处理迁移。我想知道这些 SQL 脚本是否可以被视为可重复脚本或版本化脚本?
同样,我有用于创建 SEQUENCE 的脚本,这应该被视为版本化脚本还是可重复脚本?
【问题讨论】:
标签: sql-server flyway
只有在您尝试创建该函数之前检查该函数是否存在时,您才能将其设为可重复的脚本。否则,它将尝试在每次部署时创建它,从而导致错误。大致如下:
IF NOT EXISTS( SELECT * FROM sys.partition_functions WHERE name = 'MyFunction' )
BEGIN
CREATE PARTITION FUNCTION...
END
您对 SEQUENCE 执行相同的操作,但您想在此处查找它:sys.sequences。就是这样。
虽然,我可能不会让 SEQUENCE 或 PARTITION 可重复。它们通常创建一次,然后你就完成了。但是,我绝对可以想象在这样的情况下,您正在对多个系统进行各种不同类型的部署,其中这些东西是可重复的,以确保它始终存在,无论版本如何,这是一个好主意。
【讨论】: