azure-devops - 有没有办法在 Liquibase 数据库版本控制中包含带有更改日志的整个文件夹?

标签 azure-devops liquibase cicd

我在 Liquibase 数据库版本控制方面遇到问题,因为我想将所有变更日志文件包含在文件夹中,而不指定其名称并使用它们进行更新。那可能吗?我的结构:

数据库--

|

--release-v1

     |

     --fistchangelog.sql

     --secondchangelog.sql

|

--release-v2

     |

     --newchangelog.sql

...

对于每个版本,我都想使用其文件夹中的所有 *.sql 文件。我不想硬编码 sql 文件的名称。我在 Azure 中仅使用 liquibase 命令行进行 CI/CD。

我发现了类似(liquibase.org/get-started/best-practices)的内容,但它仅适用于 xml 文件,并且我使用 sql 扩展。

我有一个想法,但这对我来说似乎很糟糕,我将把它作为最后的手段。只需在 cmd 中为文件夹中的每个文件创建一个循环...

有人知道有没有更简单更好的方法?

最佳答案

你可以这样做: 有一个父更改日志文件:

databaseChangeLog = {
include file: "releases/ref1.groovy", relativeToChangelogFile: true
include file: "releases/release1.groovy", relativeToChangelogFile: true
include file: "releases/release2.groovy", relativeToChangelogFile: true
include file: "releases/release3.groovy", relativeToChangelogFile: true
}

在releases文件夹中ref1文件可以有:

databaseChangeLog = {
include file: "../tables/changelog.groovy", relativeToChangelogFile: true    
}

因此,在同一个发布文件夹中,您可以拥有表文件夹,然后创建、删除更新文件夹。因此,您可以在表中拥有另一个文件,例如在创建文件夹中,您拥有在不同版本中添加的所有必需文件:

databaseChangeLog = {
include file: "create/changelog.groovy", relativeToChangelogFile: true
include file: "update/changelog.groovy", relativeToChangelogFile: true
include file: "data/changelog.groovy", relativeToChangelogFile: true

}

最后在releases主文件夹中你可以添加一个像release1.groovy这样的文件:

databaseChangeLog = {
    include file: "../tables/create/your_structured_sql_file.groovy", 
     relativeToChangelogFile: true
}

这些都是常规的,但结构是相同的。

关于azure-devops - 有没有办法在 Liquibase 数据库版本控制中包含带有更改日志的整个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70861681/

相关文章:

azure-devops - 如何部署具有已知(和可接受的)数据丢失的 DACPAC 版本

amazon-web-services - Github 工作流 CI/CD 失败

amazon-web-services - AWS CodePipeline 角色无权在阶段的 "action" block 中对角色执行 AssumeRole

spring - MultiTenantSpringLiquibase 示例。

java - 从文件创建存储过程

postgresql - 液基数据库/PostgreSQL : how to preserve table case correctly?

运行旧文件的 Azure Web App (Linux) 与 ACR artefact 进行比较

Azure DevOps部署Function App "successfully",但未进行任何更改

python - 无法在azure web应用程序上部署flask应用程序

azure - 是否可以编辑部署在 Windows Azure 上的云应用程序的 web.config,而无需重新部署应用程序?