Spring Boot 在本地使用Sping Boot 解锁Liquibase与H2数据库

dkqlctbz  于 2023-03-23  发布在  Spring
关注(0)|答案(1)|浏览(203)

我正在本地使用基于文件的H2数据库和liquibase构建数据库的Sping Boot 应用程序。
我正在做一些更改,应用程序突然终止,导致databasechangeloglock中的锁为true,并且应用程序不再启动,因为锁已锁定。
我已经看到我们在databasechangeloglock中有多处日志标记lock为false,但在使用h2时,我无法访问databasechangeloglock表,因为应用程序本身没有启动。在这种情况下,我需要帮助找到解锁liquibase的替代方法或在应用程序没有启动时访问databasechangeloglock的替代方法。

qltillow

qltillow1#

我意识到我可以用H2 Shell工具通过cmd连接H2。只是为了给其他遇到这个问题的人提供参考,下面是通过cmd连接H2并解锁Liquibase的步骤。
步骤1:导航到cmd中存在数据的位置。在H2中,通常是其数据文件夹。
步骤2:运行命令

java -cp path/to/h2JarUsedInThatProject/h2-*.jar org.h2.tools.Shell -url jdbc:h2:file:/data/taskdb -user sa -password password"
Example: java -cp C:\Users\rishav.mishra\.gradle\caches\modules-2\files-2.1\com.h2database\h2\2.1.214\d5c2005c9e3279201e12d4776c948578b16bf8b2\h2-2.1.214.jar org.h2.tools.Shell -url "jdbc:h2:file:/data/taskdb" -user sa -password password

步骤3:sql终端将打开。运行下面三个查询
select * from datbasechangeloglock update DATABASE_CHANGELOGLOCK set locked = FALSE,LOCKGRANTED=null,LOCKEDBY=null;出口
应用程序应该起来。

相关问题