Java 使用liquibase删除数据库中的表无效
我正在开发一个SpringBoot应用程序,在PostsgreDB上使用hibernate和liquibase。当我启动springboot应用程序时,数据库中的changelog被更新,日志显示脚本运行成功,但表仍然在模式中 这是我的db.changelog.xml: 这是我日志文件的一部分:Java 使用liquibase删除数据库中的表无效,java,spring-boot,liquibase-hibernate,Java,Spring Boot,Liquibase Hibernate,我正在开发一个SpringBoot应用程序,在PostsgreDB上使用hibernate和liquibase。当我启动springboot应用程序时,数据库中的changelog被更新,日志显示脚本运行成功,但表仍然在模式中 这是我的db.changelog.xml: 这是我日志文件的一部分: 2021-01-25 15:43:50,438 INFO liquibase.lockservice : Changelog-Protokoll erfolgreich gesperrt. 202
2021-01-25 15:43:50,438 INFO liquibase.lockservice : Changelog-Protokoll erfolgreich gesperrt.
2021-01-25 15:43:50,686 INFO liquibase.changelog : Reading from public.databasechangelog
2021-01-25 15:43:50,704 INFO liquibase.changelog : ChangeSet db/dbchangelog.xml::deletetablehans::stimpson ran successfully in 0ms
2021-01-25 15:43:50,709 INFO liquibase.lockservice : Successfully released change log lock
我不在乎语言为什么会改变,但当我查看数据库时,我看到名为Hans的表仍然存在。但是为什么呢?我确实尝试过显式提交,并在自己的行中使用分隔符,但我不明白结果是什么?
这是我的liquibase.properties文件:
changeLogFile=src/main/resources/db/dbchangelog.xml
url=jdbc:postgresql://localhost:5432/padsyhw3
username=dbuser
password=dbpass
driver=org.postgresql.Driver
这是数据库中databasechangelog表中唯一的数据行:
deletetablehans stimpson db/dbchangelog.xml 2021-01-25 15:49:05 1 EXECUTED 8:90e2fa99c6beeace580e429bd2bf9ae3 sqlFile 4.2.2
我对你的问题有一个有效的解决办法
<changeSet author="stimpson" id="deletetablehans">
<sql dbms="postgresql">
DROP TABLE HANS;
</sql>
</changeSet>
升降台;
备选方案2:使用liquibase dropTable
<changeSet author="stimpson" id="deletetablehans">
<dropTable tableName="HANS" />
</changeSet>
我对你的问题有一个有效的解决方案
<changeSet author="stimpson" id="deletetablehans">
<sql dbms="postgresql">
DROP TABLE HANS;
</sql>
</changeSet>
升降台;
备选方案2:使用liquibase dropTable
<changeSet author="stimpson" id="deletetablehans">
<dropTable tableName="HANS" />
</changeSet>
您能在db中检查您的数据库\u change\u log表以检查此更改的状态吗?logI确实更新了问题,Avikc您可以尝试从db change log表中删除此行,然后执行您的liquibase change set如果更改集在database\u change\u log表中标记为executed,那么它就不会再执行了。你能在db中检查你的数据库更改日志表来检查这个更改的状态吗?logI确实更新了这个问题,Avikcan你可以试着从db更改日志表中删除这一行,然后执行你的liquibase更改集如果更改集在数据库更改日志表中标记为executed,我想这是你的第二点我想这是你的第二点