Sqitch-单个计划行,多个sql文件



我希望迁移到sqitch,但我的团队喜欢将迁移作为多个文件。也就是说,例如,如果我们在同一个jira票证中创建外键创建索引,我们喜欢PROJ-123-create-fk.sqlPROJ-123-create-index.sql

我希望在sqitch.plan文件中保留一行,这样每个jira票证都对应一行。

基本上,除了在sqitch.plan中添加行之外,我可以这样做吗?有没有办法";包括";主文件中的其他sql文件?类似的东西

PROJ-123-main.sql

include PROJ-123-create-fk.sql
include PROJ-123-create-index.sql

非常感谢!

irpsql指令为我解决了这个问题。

PROJ-123-deploy.sql

ir PROJ-123-create-fk.sql
ir PROJ-123-create-index.sql

如果fk和index sql文件在同一目录中,则会执行它们。

由于您想将其作为单行存储在计划文件中,因此它不太匹配,但我将在下面解释我们使用的方法。也许你想在其中使用一些部件。

在我的团队中也有类似的情况,但我们使用sqitch tags。我们应用程序的每个版本都对应一个子任务。每个任务对应一个标签。我们创建的sql文件与子任务的数量一样多。然后,我们将它们组合在一个标签中,该标签是我们创建的,带有主任务的名称。在我们用于数据库的CI/CD管道中,我们还提供了带有标记的版本之间的转换。我想在这里添加这个方法,以防有人喜欢使用类似的结构。


简单示例;

让我们安装应用程序的v2.0v2.1需要一个新表和一个索引

我们在名为v2.1的主任务下创建了两个名为createtable和createindex的子任务

我们创建了两个sql文件;app_v2.1_table_create.sql创建一个表,app_v2.1_index_create.sql创建一个索引。

之后,我们创建一个名为v2.1sqitch tag。请注意,它与主任务同名。

最新更新