当前位置: 首页 > 知识库问答 >
问题:

新的flyway版本-sql错误

施选
2023-03-14

我得到了一个现有的项目,目前使用flyway-ant,版本2.2.1进行迁移。

出于多种原因,我需要使用 3.2.1(修复不同行尾的表)。不幸的是,一旦我尝试使用flyway 3.2.1设置一个空的测试数据库,我从Oracle DB收到以下错误:

Migration V1_15_1_3__AddCommandParamSDCardLogs.sql failed
---------------------------------------------------------
SQL State  : 42000
Error Code : 911
Message    : ORA-00911: invalid character
Location   : /Volumes/dev/cs/IdeaProjects/grd/db/src/sql/1.15/V1_15_1_3__AddCommandParam.sql
Line       : 1
Statement  : INSERT INTO T_RD_COMMAND (ID, COMMAND_ID, NAME, DISPLAY_ORDER, DISPLAY_NAME, CREATION_TIME, LAST_UPDATE_TIME) VALUES (SEQ_RD_COMMAND_PARAM.NEXTVAL, (SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'), 'fromDate', 1, 'From Date', SYSDATE, SYSDATE);
INSERT INTO T_RD_COMMAND (ID, COMMAND_ID, NAME, DISPLAY_ORDER, DISPLAY_NAME, CREATION_TIME, LAST_UPDATE_TIME) VALUES (SEQ_RD_COMMAND_PARAM.NEXTVAL, (SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'), 'toDate', 1, 'To Date', SYSDATE, SYSDATE);

任何想法为什么会发生这种情况?这可能是飞行途中的错误吗?使用飞行路线 2.2.1 运行迁移一切正常,运行与飞行路线 3.2.1 完全相同的迁移,oracle 报告此错误。

顺便说一句,它是飞虫。

已分析的INSERT语句:

INSERT
INTO T_RD_COMMAND
  (
    ID,
    COMMAND_ID,
    NAME,
    DISPLAY_ORDER,
    DISPLAY_NAME,
    CREATION_TIME,
    LAST_UPDATE_TIME
  )
  VALUES
  (
    SEQ_RD_COMMAND_PARAM.NEXTVAL,
    (SELECT ID FROM T_RD_COMMANDS WHERE COMMAND_NAME = 'GET_LOGS'
    ),
    'toDate',
    1,
    'To Date',
    SYSDATE,
    SYSDATE
  );

共有2个答案

祁高格
2023-03-14

这似乎是https://github.com/flyway/flyway/issues/1010病毒的症状

穆俊名
2023-03-14

这看起来像是一个解析问题。请提交错误报告,包括问题跟踪器中的语句。

 类似资料:
  • 在该项目中,我们使用Flyway迁移工具来开发数据库模式以及这些脚本的git历史。 这个想法是每个脚本编号都以number为前缀,增加值10,然后是名称,例如: 0000_name_one。sql 0010_name_two。sql 0020_name_tree.sql 等 但是,由于我们必须开始处理多个分支(例如,两个主要分支是:主master_ext),再加上我们有一些用于耗时功能的开发分支

  • 我使用< code>flyway社区版< code > 5 . 2 . 3版已经有一段时间了。我们最近刚刚尝试将flyway升级到< code > 8.2版。升级到8.2版后,对< code>MySQL 5.7的执行抛出一个< code >错误,指出 “错误:Flyway Teams Edition或MySQL升级需要:Flyway Community Edition不再支持MySQL 5.7,但

  • 我想使用 Flyway 获取特定数据库的最新架构版本值。Flyway 中是否有函数可以在命令行中获取当前架构版本号? 我可以运行以下命令: 这为我提供了数据库的整个架构内容(缩短),如下所示: 我只对最后一个架构条目版本“1.5.9”值感兴趣。 我的环境如下: < li>Windows 7 < li>Flyway 3.0

  • Flyway 是一个数据迁移工具。 简介 什么是 Flyway Flyway 是一个开源的数据库迁移工具。 为什么要使用数据迁移 为了说明数据迁移的作用,我们来举一个示例: (1)假设,有一个叫做 Shiny 的项目,它的架构是一个叫做 Shiny Soft 的 App 连接叫做 Shiny DB 的数据库。 (2)对于大多数项目而言,最简单的持续集成场景如下所示: 这意味着,我们不仅仅要处理一份

  • 我一直在寻找flyway版本1中的迁移方法。x到3。x(即从Google.com.googlecode.flyway到org.flywaydb)在提到要首先迁移到2.3版的地方,但没有提到如何迁移?有没有一种直接的方法可以做到这一点,或者我必须从后端做一些事情。 我的数据库已经有数据,我不能删除数据库。注意:Flyway 1. X到2. X对table有重大更改。 编辑 我已经将flyway的ma

  • electron-vue 自 2016年5月初 创建以来有了很大的发展,并引入了许多新奇的功能。你能相信有一段时间该项目还不支持 vue-cli 脚手架吗?新功能的开发计划不会停止。唯一的缺点是,每天都有华而不实的东西存在,进而把你的项目卡在一个老的脚手架上。尽管 electron-vue 利用了 vue-cli 的优势,遗憾的是,并没有一个结构化的方式来 版本化 (version) 样板 或 使