迁移Spring Cloud Data Flow Server至Oracle数据库遇表不存在问题求助
Spring Cloud Data Flow迁移Oracle:task_execution_manifest表缺失解决办法
- 表的来源:
task_execution_manifest是Spring Cloud Task模块的核心表,用于存储任务执行的清单元数据,属于Spring Cloud Data Flow依赖的Task组件范畴,并非Data Flow核心模块直接创建。 - 获取并创建表的步骤:
- 定位脚本:找到你当前使用的Spring Cloud Task版本对应的Oracle DDL脚本,该脚本在
spring-cloud-task-core-{version}.jar的org/springframework/cloud/task/schema目录下,文件名通常为oracle12c.sql,其中包含task_execution_manifest的创建语句。 - 手动执行脚本:提取脚本中关于
task_execution_manifest的部分,示例语句如下,直接在Oracle数据库中执行:CREATE TABLE TASK_EXECUTION_MANIFEST ( TASK_EXECUTION_ID NUMBER(19,0) NOT NULL, MANIFEST CLOB NOT NULL, CONSTRAINT TASK_EXECUTION_MANIFEST_FK FOREIGN KEY (TASK_EXECUTION_ID) REFERENCES TASK_EXECUTION(TASK_EXECUTION_ID) ); CREATE INDEX TASK_EXECUTION_MANIFEST_IDX ON TASK_EXECUTION_MANIFEST(TASK_EXECUTION_ID); - 自动迁移配置(可选):如果希望通过Spring Boot自动初始化该表,可在Data Flow Server的配置文件中添加:
注意:生产环境建议改为spring.cloud.task.initialize-schema=alwaysembedded或never,避免自动执行脚本带来的风险。
- 定位脚本:找到你当前使用的Spring Cloud Task版本对应的Oracle DDL脚本,该脚本在
- 注意事项:
- 确保执行脚本的数据库用户拥有
CREATE TABLE和CREATE INDEX权限。 - Oracle默认表名大写,需保持脚本中的表名与数据库实际命名规则一致。
- 确保执行脚本的数据库用户拥有
内容的提问来源于stack exchange,提问作者Hritik Sharma
相关产品推荐
相关产品推荐

