当前位置: 首页 > 知识库问答 >
问题:

回滚在使用liquibase的oracle中不起作用

谷梁英毅
2023-03-14

我是LiquiBase的新手。我可以使用LiquiBase更新(具有创建表的变更集)到Oracle数据库。在进行更新时,我还创建了标记。但是当我尝试回滚更新的更改(即删除创建的表)时,使用该标记。桌子没有掉下来。

我使用的是liquibase-maven插件3.4.2。下面是Maven中的代码。

 <plugins>
  <plugin>
  <groupId>org.liquibase</groupId>
  <artifactId>liquibase-maven-plugin</artifactId>
  <version>3.4.2</version>
   <executions>
   <execution>
    <id>execution1</id>
      <phase>process-resources</phase>
      <configuration>

                 <changeLogFile>src/main/resources/changelog.xml</changeLogFile>  
                 <rollbackTag>checkpoint</rollbackTag>  

                     <driver>oracle.jdbc.OracleDriver</driver>
                    <url>jdbc:oracle:thin:@10.86.24.2:1521:claim</url>
                    <username>Test</username>
                    <password>Test</password>  


        </configuration>
         <goals>

           <goal>rollback</goal>   
           <!--  <goal>rollbackSQL</goal>   -->

         </goals>
    </execution> 
    </executions>
</plugin>
 <?xml version="1.0" encoding="UTF-8"?>
 <databaseChangeLog xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.liquibase.org/xml/ns/dbchangelog"></databaseChangeLog>
-- *********************************************************************
-- Rollback to 'checkpoint' Script
-- *********************************************************************
-- Change Log: src/main/resources/changelog.xml
-- Ran at: 2/10/16 6:24 PM
-- Against: TEST@jdbc:oracle:thin:@10.86.24.2:1521:claim
-- Liquibase version: 3.4.2
-- *********************************************************************

SET DEFINE OFF;

-- Lock Database
UPDATE DATABASECHANGELOGLOCK SET LOCKED = 1, LOCKEDBY = 'KannanSDTW864', LOCKGRANTED = to_timestamp('2016-02-10 18:24:08.593', 'YYYY-MM-DD HH24:MI:SS.FF') WHERE ID = 1 AND LOCKED = 0;

-- Release Database Lock
UPDATE DATABASECHANGELOGLOCK SET LOCKED = 0, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;

请帮我解决这些问题。

共有1个答案

西门飞翮
2023-03-14

据我所知,它似乎按设计工作。您有一个空的changelog表,因此没有部署任何更改。因此,没有要回滚的更改。

 类似资料:
  • 我有一个Spring Boot应用程序,我试图在其中测试使用LiquiBase的一些迁移。我试着看看回滚函数是如何工作的,但我不断地得到错误。 当我运行应用程序时,表创建正确...但我不知道如何或在哪里运行命令来执行回滚。我尝试在IntelliJ中的Maven Goal中运行以下命令: 当我运行时,它会说: 如果数据库URL丢失或错误,那么我认为它也不能创建表?

  • case-0-3.sql: 我在进行任何更改之前标记数据库: 之后,我在每个文件应用后应用文件和标记数据库: 求求你,救命。可能有人在sql或其他格式中使用回滚操作?哪里错了?我做错了什么?它是工作液基功能吗?

  • 问题内容: 我有一个MySQL数据库,正在使用。 由于某些原因,我无法使事务正常运行。如果我打电话,它不会回滚。 示例代码: 结果是将另一行添加到myTable。谁能想到一个原因? 问题答案: 您使用的是myIsam还是innodb?据我所知,它仅适用于innodb

  • case-0-3.sql: I在进行任何更改之前标记数据库: 之后,我应用文件,并在每个文件应用后标记数据库:

  • 在liquibase中,我希望基于“context”属性值执行特定的更改集。在本例中,我通过命令行传递了-Dcontext=local(我已经检查了这个值是否正确选取),并尝试使用changeLogPropertyDefined检查变更集中的属性。但它不起作用。。请在下面找到我的变更集

  • 在我的代码中,服务方法savePerson被注释为@Transactional。在这个方法中,Person实体被持久化,并且在中间故意抛出运行时异常。我支持不提交事务,但Person实体将保留在数据库中。。。。回滚不起作用,我不知道为什么。 这是我的Hibernate配置: 这是我的服务: 刀