Liquibase 从 2.0.4 迁移到版本 3.4.0 后缺少列 'CONTEXTS'
missing column 'CONTEXTS' after Liquibase migration to version 3.4.0 from 2.0.4
我尝试将 Liquibase 从旧版本 2.0.5 迁移到 3.4.0。我尝试的第一件事是状态命令,导致读取 table 'databasechangelog':
时出现问题
Error executing SQL SELECT
FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,EXECTYPE,DESCRIPTION,COMMENTS,TAG,LIQUIBASE,LABELS,CONTEXTS
FROM IDENTSERVICE.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC,
ORDEREXECUTED ASC: ORA-00904: "CONTEXTS"
我觉得 table 中有两个新列:LABELS 和 CONTEXTS
Lquibase 网站称它只是一个替代品。
所以我的问题是:我是否需要升级到 3.0.0 版,或者如何获得新列?手动操作不是一种选择。
检查 ´StandardChangeLogHistoryService´ class。
搜索 hasContexts
例如有代码检查这些列是否存在。
因此,如果列 CONTEXTS
的测试失败,则日志行应显示:
"Adding missing databasechangelog.contexts column"
。
你可以查看你的日志。
所以,是的,它应该是一个直接替代品。
解决方案不是 运行 状态命令,而是运行良好的更新命令。
请注意,您无法返回旧版本的 Liquibase。旧版本显示校验和错误。
我尝试将 Liquibase 从旧版本 2.0.5 迁移到 3.4.0。我尝试的第一件事是状态命令,导致读取 table 'databasechangelog':
时出现问题Error executing SQL SELECT FILENAME,AUTHOR,ID,MD5SUM,DATEEXECUTED,ORDEREXECUTED,EXECTYPE,DESCRIPTION,COMMENTS,TAG,LIQUIBASE,LABELS,CONTEXTS FROM IDENTSERVICE.DATABASECHANGELOG ORDER BY DATEEXECUTED ASC, ORDEREXECUTED ASC: ORA-00904: "CONTEXTS"
我觉得 table 中有两个新列:LABELS 和 CONTEXTS Lquibase 网站称它只是一个替代品。
所以我的问题是:我是否需要升级到 3.0.0 版,或者如何获得新列?手动操作不是一种选择。
检查 ´StandardChangeLogHistoryService´ class。
搜索 hasContexts
例如有代码检查这些列是否存在。
因此,如果列 CONTEXTS
的测试失败,则日志行应显示:
"Adding missing databasechangelog.contexts column"
。
你可以查看你的日志。
所以,是的,它应该是一个直接替代品。
解决方案不是 运行 状态命令,而是运行良好的更新命令。 请注意,您无法返回旧版本的 Liquibase。旧版本显示校验和错误。