序列和分区的版本化或可重复脚本 - Flyway?
Posted
技术标签:
【中文标题】序列和分区的版本化或可重复脚本 - Flyway?【英文标题】:Versioned or Repeatable Scripts for Sequence & Partitions - Flyway? 【发布时间】:2022-01-03 22:14:07 【问题描述】:我有用于创建分区函数和分区方案的 SQL 脚本。我希望通过 flyway 脚本来处理迁移。我想知道这些 SQL 脚本是否可以被视为可重复脚本或版本化脚本?
同样,我有用于创建 SEQUENCE 的脚本,这应该被视为版本化脚本还是可重复脚本?
【问题讨论】:
【参考方案1】:只有在您尝试创建该函数之前检查该函数是否存在时,您才能将其设为可重复的脚本。否则,它将尝试在每次部署时创建它,从而导致错误。大致如下:
IF NOT EXISTS( SELECT * FROM sys.partition_functions WHERE name = 'MyFunction' )
BEGIN
CREATE PARTITION FUNCTION...
END
您对 SEQUENCE 执行相同的操作,但您想在此处查找它:sys.sequences。就是这样。
虽然,我可能不会让 SEQUENCE 或 PARTITION 可重复。它们通常创建一次,然后你就完成了。但是,我绝对可以想象在这样的情况下,您正在对多个系统进行各种不同类型的部署,其中这些东西是可重复的,以确保它始终存在,无论版本如何,这是一个好主意。
【讨论】:
谢谢,序列呢? 对不起。我完全错过了。同样的交易。我将对答案进行编辑。以上是关于序列和分区的版本化或可重复脚本 - Flyway?的主要内容,如果未能解决你的问题,请参考以下文章
Flyway详解以及Springboot集成Flyway, 数据库脚本版本管理