Spring boot data.sql避免每次启动时多次执行

问题描述 投票:0回答:2

Spring boot 提供了一个很好的选择,可以在启动时使用 data.sql 将初始数据加载到数据库中。问题是,我有一个表,其中的列是唯一的,并且 spring 尝试在每次启动时执行 sql,如果数据已经存在,则会失败。现在的问题是,处理这种情况的正确方法是什么,有没有办法告诉spring何时执行、何时不执行data.sql文件。谢谢

spring spring-boot spring-data
2个回答
3
投票

您有几个选择:

  • 使用
    spring.datasource.initialize=false
  • 禁用启动时的数据库初始化
  • 使用
    spring.datasource.continue-on-error=true
  • 关闭 Spring Boot 的快速失败行为

第二个选项将使您的 Spring Boot 应用程序通过忽略脚本执行产生的任何异常来正常启动。

Spring Boot 文档

如果上述两个选项都不符合您的要求,正如 Darren Forsythe 在评论中提到的,请考虑使用 Flyway 或 Liquibase 等数据迁移工具。 Spring Boot 为这两种工具提供了强大的支持。检查这个


0
投票

创建单独的配置文件并设置以下属性也可以: spring.sql.init.mode=从不

© www.soinside.com 2019 - 2024. All rights reserved.