Flyway migration fails with the exception Unable to check whether table "schema"."flyway_history" exists

Viewed 366

flyway-version: Flyway Community Edition 8.4.3 by Redgate
OS: Windows under Command-line
Server: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0

First I restored the database to a previous state after I executed the flyway info to see that the current version of the database is not the one that I want to migrate into.

And then I executed the following

C:\Users\user\flyway> flyway migrate

Flyway is up to date
Flyway Community Edition 8.4.3 by Redgate
Database: jdbc:oracle:thin:@//localhost:1521/test_db (Oracle 12.2)
Successfully validated 15 migrations (execution time 00:00.252s)
Current version of schema "DB_ADMIN": 5.1.0.2
Migrating schema "DB_ADMIN" to version "5.1.1.0 - db admin"
Migrating schema "DB_ADMIN" to version "5.1.1.1 - db admin"
Migrating schema "DB_ADMIN" to version "5.2.0.0 - db admin"

Some versions are successfully migrated but the latest migration gives me the following error

WARNING: DB: Warning: execution completed with warning (SQL State: 99999 - Error Code: 17110)

ERROR: Unable to commit transaction
java.sql.SQLRecoverableException: Closed Connection
        at oracle.jdbc.driver.PhysicalConnection.getAutoCommit(PhysicalConnection.java:2089)
        at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:2170)
        at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:2207)
        at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.ja
va:89)
        at org.flywaydb.core.internal.jdbc.TableLockingExecutionTemplate.execute(TableLockingExecutionTemplate.java
:33)
        at org.flywaydb.core.internal.database.base.Connection.lock(Connection.java:103)
        at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.lock(JdbcTableSchemaHistory.java:141)
        at org.flywaydb.core.internal.command.DbMigrate.migrateAll(DbMigrate.java:140)
        at org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:100)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:219)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:170)
        at org.flywaydb.core.Flyway.execute(Flyway.java:574)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:170)
        at org.flywaydb.commandline.Main.executeOperation(Main.java:228)
        at org.flywaydb.commandline.Main.main(Main.java:149)
ERROR: Unable to restore autocommit to original value for connection
java.sql.SQLRecoverableException: Closed Connection
        at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:2067)
        at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.ja
va:97)
        at org.flywaydb.core.internal.jdbc.TableLockingExecutionTemplate.execute(TableLockingExecutionTemplate.java
:33)
        at org.flywaydb.core.internal.database.base.Connection.lock(Connection.java:103)
        at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.lock(JdbcTableSchemaHistory.java:141)
        at org.flywaydb.core.internal.command.DbMigrate.migrateAll(DbMigrate.java:140)
        at org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:100)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:219)
        at org.flywaydb.core.Flyway$1.execute(Flyway.java:170)
        at org.flywaydb.core.Flyway.execute(Flyway.java:574)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:170)
        at org.flywaydb.commandline.Main.executeOperation(Main.java:228)
        at org.flywaydb.commandline.Main.main(Main.java:149)
ERROR: Unable to rollback transaction
java.sql.SQLRecoverableException: Closed Connection
        at oracle.jdbc.driver.PhysicalConnection.getAutoCommit(PhysicalConnection.java:2089)
        at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:2218)
        at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.ja
va:82)
        at org.flywaydb.core.internal.database.base.Connection.restoreOriginalSchema(Connection.java:119)
        at org.flywaydb.core.internal.database.base.Connection.close(Connection.java:113)
        at org.flywaydb.core.internal.database.base.Database.close(Database.java:367)
        at org.flywaydb.core.internal.util.IOUtils.close(IOUtils.java:37)
        at org.flywaydb.core.Flyway.execute(Flyway.java:582)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:170)
        at org.flywaydb.commandline.Main.executeOperation(Main.java:228)
        at org.flywaydb.commandline.Main.main(Main.java:149)
ERROR: Unable to restore autocommit to original value for connection
java.sql.SQLRecoverableException: Closed Connection
        at oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:2067)
        at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.ja
va:97)
        at org.flywaydb.core.internal.database.base.Connection.restoreOriginalSchema(Connection.java:119)
        at org.flywaydb.core.internal.database.base.Connection.close(Connection.java:113)
        at org.flywaydb.core.internal.database.base.Database.close(Database.java:367)
        at org.flywaydb.core.internal.util.IOUtils.close(IOUtils.java:37)
        at org.flywaydb.core.Flyway.execute(Flyway.java:582)
        at org.flywaydb.core.Flyway.migrate(Flyway.java:170)
        at org.flywaydb.commandline.Main.executeOperation(Main.java:228)
        at org.flywaydb.commandline.Main.main(Main.java:149)
ERROR: 
Unable to check whether table "DB_ADMIN"."flyway_history" exists
------------------------------------------------------------------------
SQL State  : 08003
Error Code : 17008
Message    : Closed Connection

Caused by: java.sql.SQLRecoverableException: Closed Connection

Previous versions, were successfully migrated. Although the current version throws the above exceptions. If I try to migrate the database throught the OracleSql developer the migration succeeds.

NOTE: The updates we successfully implemented into the database although the flyway_history was not updated.

What would cause the above issue ?

0 Answers
Related