我有创建分区函数的SQL脚本&分区方案。我希望通过flyway脚本来处理迁移。我想知道这些SQL脚本是否可以被视为可重复脚本或版本脚本?
同样,我有创建SEQUENCE的脚本,这应该被视为版本化脚本还是可重复脚本?
只有在尝试创建函数之前对其是否存在进行了检查,才能使其成为可重复的脚本。否则,它将在每次部署时尝试创建函数,从而导致错误。大致如下:
IF NOT EXISTS( SELECT * FROM sys.partition_functions WHERE name = 'MyFunction' )
BEGIN
CREATE PARTITION FUNCTION...
END
你对SEQUENCE做了同样的事情,但你想在这里找到它:sys.sequences。就这样。
尽管,我可能不会使SEQUENCE或PARTITION可重复。它们通常创建一次,然后就完成了。然而,我完全可以想象,在这种情况下,你要对多个系统进行各种不同类型的部署,让这些东西是可重复的,以确保它始终存在,无论版本如何,这是一个好主意。