I hope you all are fine.
I am trying to upgrade a Hapi Fhir Server JPA Server from 4.2.0 (deployed in Production) to 5.3.0.
I tried to execute a database migration with the migrate database command (first using 5.3.0 client and later 5.3.0 client):
hapi-fhir-cli
migrate-database -d MSSQL_2012 -u
"jdbc:sqlserver://xyz.com:8433;databaseName=fhir"
-n "User_fhir" -p "Password"
org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException: Migration failed !
at org.flywaydb.core.internal.command.DbMigrate.doMigrateGroup(DbMigrate.java:369)
at org.flywaydb.core.internal.command.DbMigrate.applyMigrations(DbMigrate.java:287)
at org.flywaydb.core.internal.command.DbMigrate.migrateGroup(DbMigrate.java:244)
at org.flywaydb.core.internal.command.DbMigrate.access$100(DbMigrate.java:54)
at org.flywaydb.core.internal.command.DbMigrate$2.call(DbMigrate.java:162)
at org.flywaydb.core.internal.command.DbMigrate$2.call(DbMigrate.java:159)
at org.flywaydb.core.internal.database.sqlserver.SQLServerApplicationLockTemplate.execute(SQLServerApplicationLockTemplate.java:62)
at org.flywaydb.core.internal.database.sqlserver.SQLServerConnection.lock(SQLServerConnection.java:96)
at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.lock(JdbcTableSchemaHistory.java:140)
at org.flywaydb.core.internal.command.DbMigrate.migrateAll(DbMigrate.java:159)
at org.flywaydb.core.internal.command.DbMigrate.migrate(DbMigrate.java:137)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:199)
at org.flywaydb.core.Flyway$1.execute(Flyway.java:159)
at org.flywaydb.core.Flyway.execute(Flyway.java:530)
at org.flywaydb.core.Flyway.migrate(Flyway.java:159)
at ca.uhn.fhir.jpa.migrate.FlywayMigrator.migrate(FlywayMigrator.java:64)
at ca.uhn.fhir.cli.BaseFlywayMigrateDatabaseCommand.run(BaseFlywayMigrateDatabaseCommand.java:137)
at ca.uhn.fhir.cli.HapiFlywayMigrateDatabaseCommand.run(HapiFlywayMigrateDatabaseCommand.java:56)
at ca.uhn.fhir.cli.BaseApp.run(BaseApp.java:267)
at ca.uhn.fhir.cli.App.main(App.java:43)
Caused by: org.flywaydb.core.api.FlywayException: Migration failed !
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor.executeOnce(JavaMigrationExecutor.java:78)
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor.access$000(JavaMigrationExecutor.java:35)
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor$1.call(JavaMigrationExecutor.java:56)
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor$1.call(JavaMigrationExecutor.java:53)
at org.flywaydb.core.internal.database.DefaultExecutionStrategy.execute(DefaultExecutionStrategy.java:28)
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor.execute(JavaMigrationExecutor.java:53)
at org.flywaydb.core.internal.command.DbMigrate.doMigrateGroup(DbMigrate.java:366)
... 19 common frames omitted
Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [alter table HFJ_RESOURCE drop column FORCED_ID_PID]; SQL state [S0001]; error code
[5074]; The object 'FKpm7n4gliswjf4au4s0s8xlo9m' is dependent on column 'FORCED_ID_PID'.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: The object 'FKpm7n4gliswjf4au4s0s8xlo9m' is depe
ndent on column 'FORCED_ID_PID'.
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1443)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:633)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:862)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:917)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:927)
at ca.uhn.fhir.jpa.migrate.taskdef.BaseTask.lambda$executeSql$0(BaseTask.java:110)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at ca.uhn.fhir.jpa.migrate.taskdef.BaseTask.executeSql(BaseTask.java:107)
at ca.uhn.fhir.jpa.migrate.taskdef.DropColumnTask.doExecute(DropColumnTask.java:57)
at ca.uhn.fhir.jpa.migrate.taskdef.BaseTask.execute(BaseTask.java:167)
at ca.uhn.fhir.jpa.migrate.FlywayMigration.migrate(FlywayMigration.java:79)
at org.flywaydb.core.internal.resolver.java.JavaMigrationExecutor.executeOnce(JavaMigrationExecutor.java:64)
... 25 common frames omitted
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The object 'FKpm7n4gliswjf4au4s0s8xlo9m' is dependent on column 'FORCED_ID_PID'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1624)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:594)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:524)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2979)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:248)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:223)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:473)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:136)
at org.springframework.jdbc.core.JdbcTemplate.lambda$update$0(JdbcTemplate.java:867)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:617)
I this google group are other conversation with other similar errors trying to use hapi-fhir-cli, but there is no solution.