defect
With #25881, the format of the FAST_LIST table was changed. The MODULE_TYPE column was removed.
However, the schema configuration stored in the database was not updated during the migration. Since there is no automatic schema migration, the stored schema configuration is also not updated.
If a replay migration is now executed, the schema configuration from the database is used to dump the data. However, the existence of the MODULE_TYPE column is inferred from the stored configuration, resulting in the following error message when the dump is created:
com.top_logic.basic.module.RestartException: Unable to restart 'com.top_logic.basic.XMLProperties$Module[impl:'com.top_logic.basic.XMLProperties']'
at ...
at com.top_logic.knowledge.service.migration.MigrationService.migrate(MigrationService.java:391)
at com.top_logic.knowledge.service.migration.MigrationService.startUp(MigrationService.java:355)
at com.top_logic.basic.module.ManagedClass.doStart(ManagedClass.java:121)
at com.top_logic.basic.module.BasicRuntimeModule.startUpImplementation(BasicRuntimeModule.java:195)
... 89 more
Caused by: com.top_logic.knowledge.service.KnowledgeBaseRuntimeException: java.sql.SQLException: Field "MODULE_TYPE" not found
Column "MODULE_TYPE" not found; SQL statement:
SELECT "BRANCH" AS "BRANCH", "IDENTIFIER" AS "IDENTIFIER", "REV_MAX" AS "REV_MAX", "REV_MIN" AS "REV_MIN", "REV_CREATE" AS "REV_CREATE", "PHYSICAL_RESOURCE" AS "PHYSICAL_RESOURCE", "ANNOTATIONS" AS "ANNOTATIONS", "NAME" AS "NAME", "DESCR" AS "DESCR", "DEFAULT_ID" AS "DEFAULT_ID", "MODULE_TYPE" AS "MODULE_TYPE", "MODULE_ID" AS "MODULE_ID" FROM "FAST_LIST" WHERE ("REV_MAX" >= ?) AND ("REV_MAX" < ?) ORDER BY "BRANCH" ASC, "IDENTIFIER" ASC, "REV_MAX" ASC [42122-210]: SELECT "BRANCH" AS "BRANCH", "IDENTIFIER" AS "IDENTIFIER", "REV_MAX" AS "REV_MAX", "REV_MIN" AS "REV_MIN", "REV_CREATE" AS "REV_CREATE", "PHYSICAL_RESOURCE" AS "PHYSICAL_RESOURCE", "ANNOTATIONS" AS "ANNOTATIONS", "NAME" AS "NAME", "DESCR" AS "DESCR", "DEFAULT_ID" AS "DEFAULT_ID", "MODULE_TYPE" AS "MODULE_TYPE", "MODULE_ID" AS "MODULE_ID" FROM "FAST_LIST" WHERE ("REV_MAX" >= ?) AND ("REV_MAX" < ?) ORDER BY "BRANCH" ASC, "IDENTIFIER" ASC, "REV_MAX" ASC
at com.top_logic.knowledge.service.db2.ItemEventReader.readEvent(ItemEventReader.java:509)
at com.top_logic.knowledge.service.db2.OrderedItemEventReader.nextChunk(OrderedItemEventReader.java:120)
at com.top_logic.knowledge.service.db2.OrderedItemEventReader.init(OrderedItemEventReader.java:96)
at com.top_logic.knowledge.service.db2.OrderedItemEventReader.<init>(OrderedItemEventReader.java:84)
at com.top_logic.knowledge.service.db2.DBKnowledgeBase.internalGetReader(DBKnowledgeBase.java:4506)
at com.top_logic.knowledge.service.db2.DBKnowledgeBase.getChangeSetReader(DBKnowledgeBase.java:4476)
at com.top_logic.knowledge.service.db2.DBKnowledgeBase.getChangeSetReader(DBKnowledgeBase.java:4448)
at com.top_logic.knowledge.service.db2.migration.KnowledgeBaseDumper.dumpChangeSets(KnowledgeBaseDumper.java:201)
at com.top_logic.knowledge.service.db2.migration.KnowledgeBaseDumper.dump(KnowledgeBaseDumper.java:180)
at com.top_logic.knowledge.service.db2.migration.KnowledgeBaseDumper.dump(KnowledgeBaseDumper.java:166)
at com.top_logic.knowledge.service.migration.MigrationService.dumpKB(MigrationService.java:617)
at com.top_logic.knowledge.service.migration.MigrationService.replayHistory(MigrationService.java:568)
... 94 more
Caused by: java.sql.SQLException: Column "MODULE_TYPE" not found
Column "MODULE_TYPE" not found; SQL statement:
SELECT "BRANCH" AS "BRANCH", "IDENTIFIER" AS "IDENTIFIER", "REV_MAX" AS "REV_MAX", "REV_MIN" AS "REV_MIN", "REV_CREATE" AS "REV_CREATE", "PHYSICAL_RESOURCE" AS "PHYSICAL_RESOURCE", "ANNOTATIONS" AS "ANNOTATIONS", "NAME" AS "NAME", "DESCR" AS "DESCR", "DEFAULT_ID" AS "DEFAULT_ID", "MODULE_TYPE" AS "MODULE_TYPE", "MODULE_ID" AS "MODULE_ID" FROM "FAST_LIST" WHERE ("REV_MAX" >= ?) AND ("REV_MAX" < ?) ORDER BY "BRANCH" ASC, "IDENTIFIER" ASC, "REV_MAX" ASC [42122-210]: SELECT "BRANCH" AS "BRANCH", "IDENTIFIER" AS "IDENTIFIER", "REV_MAX" AS "REV_MAX", "REV_MIN" AS "REV_MIN", "REV_CREATE" AS "REV_CREATE", "PHYSICAL_RESOURCE" AS "PHYSICAL_RESOURCE", "ANNOTATIONS" AS "ANNOTATIONS", "NAME" AS "NAME", "DESCR" AS "DESCR", "DEFAULT_ID" AS "DEFAULT_ID", "MODULE_TYPE" AS "MODULE_TYPE", "MODULE_ID" AS "MODULE_ID" FROM "FAST_LIST" WHERE ("REV_MAX" >= ?) AND ("REV_MAX" < ?) ORDER BY "BRANCH" ASC, "IDENTIFIER" ASC, "REV_MAX" ASC
at com.top_logic.basic.sql.SQLH.enhanceMessage(SQLH.java:592)
at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.enhanceMessage(PrepStmtBasedCompiledStatement.java:142)
at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.executeQuery(PrepStmtBasedCompiledStatement.java:55)
at com.top_logic.knowledge.service.db2.MultipleItemQuery.query(MultipleItemQuery.java:112)
at com.top_logic.knowledge.service.db2.ItemEventReader.findNextRowType(ItemEventReader.java:340)
at com.top_logic.knowledge.service.db2.ItemEventReader.findNextRowAttributes(ItemEventReader.java:293)
at com.top_logic.knowledge.service.db2.ItemEventReader.findNextEvent(ItemEventReader.java:560)
at com.top_logic.knowledge.service.db2.ItemEventReader.readEvent(ItemEventReader.java:479)
... 105 more
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "MODULE_TYPE" not found
Column "MODULE_TYPE" not found; SQL statement:
SELECT "BRANCH" AS "BRANCH", "IDENTIFIER" AS "IDENTIFIER", "REV_MAX" AS "REV_MAX", "REV_MIN" AS "REV_MIN", "REV_CREATE" AS "REV_CREATE", "PHYSICAL_RESOURCE" AS "PHYSICAL_RESOURCE", "ANNOTATIONS" AS "ANNOTATIONS", "NAME" AS "NAME", "DESCR" AS "DESCR", "DEFAULT_ID" AS "DEFAULT_ID", "MODULE_TYPE" AS "MODULE_TYPE", "MODULE_ID" AS "MODULE_ID" FROM "FAST_LIST" WHERE ("REV_MAX" >= ?) AND ("REV_MAX" < ?) ORDER BY "BRANCH" ASC, "IDENTIFIER" ASC, "REV_MAX" ASC [42122-210]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:521)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:496)
at org.h2.message.DbException.get(DbException.java:227)
at org.h2.message.DbException.get(DbException.java:203)
at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:248)
at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:230)
at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
at org.h2.expression.Alias.optimize(Alias.java:52)
at org.h2.command.query.Select.prepare(Select.java:1177)
at org.h2.command.Parser.prepareCommand(Parser.java:557)
at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:615)
at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:553)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1116)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:92)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:639)
at com.top_logic.basic.sql.ConnectionProxy.prepareStatement(ConnectionProxy.java:202)
at com.top_logic.basic.sql.ConnectionProxy.prepareStatement(ConnectionProxy.java:202)
at com.top_logic.basic.db.sql.ConfiguredCompiledStatement.prepareStatement(ConfiguredCompiledStatement.java:62)
at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.tryExecuteQuery(PrepStmtBasedCompiledStatement.java:62)
at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.executeQuery(PrepStmtBasedCompiledStatement.java:53)
... 110 more
== Test No test