在我的spring启动项目中包含liqubase,但仍然执行data.sql并失败

时间:2018-02-27 16:49:12

标签: spring spring-boot liquibase

我的spring boot项目中有data.sql文件,其中包含db的初始数据。当系统第一次启动时,应该在db中生成这些记录,之后如果已经在db中则应该忽略它们。这是我的目标,所以我在我的项目中包含了liqubase。但是,它的行为并不像我预期的那样,spring尝试在每次启动时执行sql,如果数据存在则会失败。这可以用liqubase完成,如果是的话,我应该具体查找什么配置?

1 个答案:

答案 0 :(得分:3)

无论你有没有liquibase,

data.sql每次都会运行。你可以在这做两件事。

  1. 将您的sql插件从data.sql移至liquibase变更集升级。 How?

  2. data.sql中编写sql插件,以便忽略条目是否已存在。

  3. 就像你有: -

    INSERT INTO users (id, name) VALUES (1005201,'dave') 
    

    您可以将其更改为: -

    INSERT IGNORE INTO users (id, name) VALUES  (1005201,'dave')