Spring Boot H2数据库不会自动重置找不到现有数据 Liquibase的问题

问题描述

我有以下设置:

  1. Spring Boot
  2. 嵌入式H2数据库
  3. Liquibase凭证创建数据

首先,我想在每次重新启动应用程序时从头开始。 我希望liquibase每次都从脚本重新创建H2表。现在,它不保留现有数据。如果我从h2控制台中手动删除数据,除非我更新changeSet id-s,否则它不会重新创建它们。

即使到现在,我仍然有一个名为User的现有表,其中包含数据。我可以从h2控制台看到它。但是突然之间,当我使用我的JdbcTemplate查询时,找不到任何结果,也无法登录(它得到的是空结果)。

编辑:

我通过向我的User.java对象中添加了setter来修复了数据查询。这样就解决了(我希望没有它们就可以做,但看起来不是)。

但是我仍然希望每次创建的liquibase表都会重置,以便我可以更改查询而不会给我错误

解决方法

在每次启动时获取新数据库的一种非常简单的方法是使用内存数据库而不是文件。

只需更换 spring.datasource.url=jdbc:h2:~/company;MV_STORE=false 通过 spring.datasource.url=jdbc:h2:mem:company;MV_STORE=false 在您的application.properties