Spring boot 提供了一个很好的选择,可以在启动时使用 data.sql 将初始数据加载到数据库中。问题是,我有一个表,其中的列是唯一的,并且 spring 尝试在每次启动时执行 sql,如果数据已经存在,则会失败。现在的问题是,处理这种情况的正确方法是什么,有没有办法告诉spring何时执行、何时不执行data.sql文件。谢谢
您有几个选择:
spring.datasource.initialize=false
spring.datasource.continue-on-error=true
第二个选项将使您的 Spring Boot 应用程序通过忽略脚本执行产生的任何异常来正常启动。
如果上述两个选项都不符合您的要求,正如 Darren Forsythe 在评论中提到的,请考虑使用 Flyway 或 Liquibase 等数据迁移工具。 Spring Boot 为这两种工具提供了强大的支持。检查这个。
创建单独的配置文件并设置以下属性也可以: spring.sql.init.mode=从不