【问题标题】:How to execute SQL files outside of spring application using maven command?如何使用 maven 命令在 Spring 应用程序之外执行 SQL 文件?
【发布时间】:2021-11-11 08:20:44
【问题描述】:

我有一个使用 Postgresql 和 maven 的 Spring Boot 应用程序。它使用 Flyway 迁移来迁移数据库更改。我想要一个特定的 SQL 文件,并通过命令运行它,以便在我需要时插入一些记录进行配置。

你能帮我处理一下吗?

【问题讨论】:

    标签: java spring-boot maven


    【解决方案1】:

    具体的话题在这里详述Spring Database Initialization

    基本按需要设置初始化值:

    spring.datasource.platform=postgres
    spring.jpa.hibernate.ddl-auto=update
    spring.datasource.initialization-mode=always
    ....
    

    例如(还有更多选项)如果您将文件 data.sql 放入资源中,它将被执行,您可以添加您的固定装置。

    对于特定的Flyway迁移,您应该查看Execute Flyway Database Migrations on Startup

    基本上你添加每个新的迁移版本脚本,每次部署都会检查它。

    【讨论】:

    • 我想通过命令运行它,也可以随时运行,而不是在启动时运行
    • 这样做的原因是什么?如果您将迁移的执行与您的代码库解耦,则需要非自动的人工干预(这会给您带来问题)。如果是一次性干预来解决问题,请使用您已有的标准工具,不要用它弄乱您的代码库。
    • 其实我想有一个sql文件用于添加超级管理员账户。你有什么建议?
    • 按照答案建议添加迁移insert into users (...) select 'admin', ... from dual where not exists (select 1 from users where id = 'admin' 左右。但请记住,只有代码库更改所需的迁移才应添加到代码库中(不包括解决特定客户/部署问题的脚本)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2015-01-29
    • 2018-09-07
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多