Spring 启动 H2 数据库不会自动重置。找不到现有数据。 liquibase 的问题

Spring Boot H2 database doesn't self-reset. Can't find existing data. Problems with liquibase

我有以下设置:

  1. Spring开机
  2. 嵌入式H2数据库
  3. 用于创建数据的 Liquibase 脚本

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

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

编辑:

我通过向我的 User.java 对象添加设置器来修复数据查询。这修复了它(我希望我可以没有它们,但似乎没有)。

但我仍然希望 table 创建我的 liquibase 每次都会重置,这样我就可以更改查询而不会给我错误。

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

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