【问题标题】:Execute sql file on every startup using liquibase configuration使用 liquibase 配置在每次启动时执行 sql 文件
【发布时间】:2021-10-28 19:18:55
【问题描述】:

我想创建一个 SQL 初始化文件,以便在每次 Spring 启动时填充测试数据:

databaseChangeLog:
  - changeSet:
      id: 0001
      author: test
      dbms: postgres
      changes:
        - sqlFile:
            - relativeToChangelogFile: true
            - path: data.sql

你知道我如何将它配置为在每次 Spring 启动时执行吗?

【问题讨论】:

  • 如果这是用于测试用例,您可以使用使用 hsqldb 或 h2 的内存数据库,这些数据库仅在进程运行时存在,因此 liquibase 将应用所有变更集。但是,如果您使用的是像 postgres 这样的持久性数据库,则 liquibase 只会执行之前尚未执行过的变更集。在这种情况下,您可能希望使用其他机制来始终在启动时执行 sql 脚本。
  • 好的,如何在启动期间始终执行 SQL 脚本?
  • 如果这是为单元测试填充测试数据,您可以使用类似 dbrider github.com/database-rider/database-rider

标签: spring spring-boot liquibase


【解决方案1】:

您可以使用以下属性。现在每次都会运行特定的changeSet

- changeSet:
    runAlways: true

https://docs.liquibase.com/concepts/basic/changeset.html

runAlways 在每次运行时执行变更集,即使之前已经运行过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多