[
https://issues.apache.org/jira/browse/FINERACT-1008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17119780#comment-17119780
]
Michael Vorburger commented on FINERACT-1008:
---------------------------------------------
[~ptuomola] thanks for research!! [~fynmanoj] thanks for (now already merged)
PR.
> This piece of code can be removed later when all instances are updated.
I think we'll probably want to keep this in "forever".
https://demo.fineract.dev/fineract-provider/actuator/info is still "behind", on
old 01e8014 from 3 days ago, because it fails to start new versions due to:
{noformat}Migration V358__fixed_deposit_rollover_transfer.sql failed
----------------------------------------------------------
SQL State : 42S21
Error Code : 1060
Message : Duplicate column name 'transfer_to_savings_account_id'
Location : sql/migrations/core_db/V358__fixed_deposit_rollover_transfer.sql
(/app/sql/migrations/core_db/V358__fixed_deposit_rollover_transfer.sql)
Line : 20
Statement : alter table m_deposit_account_term_and_preclosure add column
transfer_to_savings_account_id bigint(20) DEFAULT NULL,
add CONSTRAINT FOREIGN KEY (`transfer_to_savings_account_id`) REFERENCES
`m_savings_account` (`id`){noformat}
I suspect that this because it's in a "half way state", and the easiest to
unblock and conclude this is probably if I manually drop the column, so I'll
try to do this. Just for the record and for future searches, there was also
another error in the logs of Fineract.dev:
{noformat}java.lang.IllegalStateException: Illegal access: this web application
instance has been stopped already. Could not load
[sql/migrations/core_db/V358__fixed_deposit_rollover_transfer.sql]. The
following stack trace is thrown for debugging purposes as well as to attempt to
terminate the thread which caused the illegal access.
at
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading
(WebappClassLoaderBase.java:1385)
at org.apache.catalina.loader.WebappClassLoaderBase.getResource
(WebappClassLoaderBase.java:1038)
at
org.flywaydb.core.internal.resource.classpath.ClassPathResource.getUrl
(ClassPathResource.java:83)
at
org.flywaydb.core.internal.resource.classpath.ClassPathResource.getAbsolutePathOnDisk
(ClassPathResource.java:72)
at
org.flywaydb.core.internal.sqlscript.FlywaySqlScriptException.getMessage
(FlywaySqlScriptException.java:81)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:54)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.ThrowableProxy.<init>
(ThrowableProxy.java:60)
at ch.qos.logback.classic.spi.LoggingEvent.<init>
(LoggingEvent.java:119)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend
(Logger.java:419)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus
(Logger.java:383)
at ch.qos.logback.classic.Logger.log (Logger.java:765)
at org.apache.commons.logging.LogAdapter$Slf4jLocationAwareLog.error
(LogAdapter.java:433)
at org.springframework.boot.SpringApplication.reportFailure
(SpringApplication.java:826)
at org.springframework.boot.SpringApplication.handleRunFailure
(SpringApplication.java:801)
at org.springframework.boot.SpringApplication.run
(SpringApplication.java:325)
at org.springframework.boot.builder.SpringApplicationBuilder.run
(SpringApplicationBuilder.java:140)
at org.apache.fineract.ServerApplication.main
(ServerApplication.java:63){noformat}
but, as far as I can tell, this is "just" what happens when we fail to apply
data migrations and can't start properly, the error handling in that particlar
case seems like it's not perfect; personally I don't think it worth to sink
time into fix this corner case.
> Field 'version_rank' doesn't have a default value (blocking updates on
> fineract.dev)
> ------------------------------------------------------------------------------------
>
> Key: FINERACT-1008
> URL: https://issues.apache.org/jira/browse/FINERACT-1008
> Project: Apache Fineract
> Issue Type: Bug
> Affects Versions: 1.4.0
> Reporter: Michael Vorburger
> Assignee: Manoj
> Priority: Blocker
> Fix For: 1.4.0
>
>
> See FINERACT-932 for general background; I'm currently seeing this in logs of
> https://www.fineract.dev, and it's preventing upgrading the demo to recently
> merged PRs:
> {noformat}Caused by: java.sql.SQLException: Field 'version_rank' doesn't have
> a default value
> at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException
> (SQLError.java:129)
> at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException
> (SQLError.java:97)
> at
> com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException
> (SQLExceptionsMapping.java:122)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal
> (ClientPreparedStatement.java:953)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal
> (ClientPreparedStatement.java:1092)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal
> (ClientPreparedStatement.java:1040)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate
> (ClientPreparedStatement.java:1347)
> at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate
> (ClientPreparedStatement.java:1025)
> at org.flywaydb.core.internal.jdbc.JdbcTemplate.update
> (JdbcTemplate.java:331)
> at
> org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.doAddAppliedMigration
> (JdbcTableSchemaHistory.java:163)
> at
> org.flywaydb.core.internal.schemahistory.SchemaHistory.addAppliedMigration
> (SchemaHistory.java:163)
> at org.flywaydb.core.internal.command.DbMigrate.doMigrateGroup
> (DbMigrate.java:384)
> at org.flywaydb.core.internal.command.DbMigrate.access$200
> (DbMigrate.java:54)
> at org.flywaydb.core.internal.command.DbMigrate$3.call
> (DbMigrate.java:282)
> at
> org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute
> (TransactionalExecutionTemplate.java:66)
> at org.flywaydb.core.internal.command.DbMigrate.applyMigrations
> (DbMigrate.java:279)
> 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.mysql.MySQLNamedLockTemplate.execute
> (MySQLNamedLockTemplate.java:60)
> at org.flywaydb.core.internal.database.mysql.MySQLConnection.lock
> (MySQLConnection.java:161)
> 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
> org.apache.fineract.infrastructure.core.service.TenantDatabaseUpgradeService.upgradeAllTenants
> (TenantDatabaseUpgradeService.java:80){noformat}
> The "trigger" seems to have been the merge of [~fynmanoj]'s
> https://github.com/apache/fineract/pull/769 for FINERACT-893 by [~avikg]
> ([~avikganguly] ? [~avikganguly010] ??) but the
> {{core_db/V358__fixed_deposit_rollover_transfer.sql}} from that PR is
> unlikely to have caused this?
> Field {{version_rank}} which _doesn't have a default value_ appears to be in
> (Flyway's own!) {{schema_version}} table, defined in
> https://github.com/apache/fineract/blob/develop/fineract-db/mifospltaform-tenants-first-time-install.sql
> ... so is this an impact of and related to FINERACT-979 / FINERACT-810 ?
> (Perhaps that PR above was just the first time that we merged a PR with a
> schema migration after the Flyway upgrade?)
> I haven't been able to locally reproduce this though.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)