【flyway】 从mysql的初始化脚本到 oracle 的初始化脚本
背景:系统使用的 flyway 进行自动升级。现在要兼容 oracle。首要之事当然是制作 oracle 的数据初始化脚本。
失败经历:使用 Navicat Premium 12 的【工具->数据传输】将 mysql 的数据先迁移到 oracle ,到后直接导出 sql 。发现 dao 层的sql(我很确认我写的都是通用sql) 全部无法执行。
成功方式:使用 Navicat 直接导出 mysql 的脚本。然后一点点改为 oracle 的 DDL/DML 语法.
下面罗列下我用的:(ctr+H 整体替换)
- change drop table ... to -- drop table... (将 drop table 语句注释掉)
- delete ` (删除斜撇,就是键盘上ESC建下面那个波浪线键)
- delete ENGINE=InnoDB DEFAULT CHARSET=utf8 (同 2)
- change varchar to varchar2 (将 varchar 替换为 varchar2)
- delete CHARACTER SET utf8 COLLATE utf8_general_ci (同 2)
- change longtext to clob (将 longtext/text 替换为 clob)
- in tables ,change FieldName from : "from" ,change to : "to" (from 和to 是在oracle里是保留字,必须加双引号)
- in table pidcad_drawing,change size : "size" (size也是保留字)
- in table pidcad_file , change NOT NULL DEFAULT '1' : DEFAULT '1' NOT NULL (oracle 中 默认值和不为空的顺序是 DEFAULT '1' NOT NULL )
附上 mysql 和 oracle 的数据类型对应表 https://blog.csdn.net/huangyinzhao/article/details/80739291
没有迈过去,选择规避的坑:
有个问题是表中某个字段的数据类型是 longtext,里面有大量的数据。大字段数据作为 oracle 初始化时,生成的 sql 脚本是无法执行的。网上说必须变为 plsql ,我在flyway里没有试验成功。
我只能选择将这些大字段的置空,通过程序,后期访问的时候再进行初始化。
【flyway】 从mysql的初始化脚本到 oracle 的初始化脚本相关推荐
- shell脚本导出oracle数据库,Shell脚本备份恢复Oracle数据库简单示例
exp_p.sh #!/bin/sh #$1生成dmp文件保存路径 if [ -d $1 ]; then echo $1 exist #用户名/密码 生成文件名称根据当天 exp_p.sh #!/bi ...
- 【Oracle健康检查脚本加量不加价】对Oracle 10g、11g和12c版本分别提供了只读版,并且加上了MySQL的健康检查...
目前一共包含6个脚本,若脚本的扩展名为".sql"则表示该脚本为sql脚本,若脚本的扩展名为".pl"则表示该脚本为perl脚本. 对于SQL脚本而言,其中DB ...
- mysql.server 文件是什么_mysql的启动脚本mysql.server及示例配置文件
以MySQL-server-4.0.14-0.i3862881064151.rpm为例,放在/data目录下 cd /data rpm -ivh MySQL-server-4.0.14-0.i386. ...
- Oracle数据库实用脚本
以下是Maclean.Liu所编写或收集的Oracle数据库实用脚本的列表,在这里分享一下: Script:收集Enterprise Manager Grid Control/Agent/Databa ...
- 启动和停止Oracle服务bat脚本
总所周知,Oracle随开机启动会占很大内存,而你每次想用的时候还得去计算机服务里去找服务.一个一个的启动,比较麻烦. 这里给出两个bat脚本,来直接双击启动和停止Oracle服务[脚本内容来源于网络 ...
- lua mysql 事务_为什么在 Redis 实现 Lua 脚本事务?-阿里云开发者社区
在刚过去的几个月中,我一直在构思并尝试在 redis 中实现 lua 脚本的事务功能.没有多少人理解我的想法,所以我将通过一些历史为大家做下解释. MySQL 与 Postgres 在 1998-20 ...
- SpringBoot2.x整合JDBC及初始化data.sql和schema.sql脚本
今天在使用SpringBoot2.x版本整合JDBC时遇到了一些问题:由于我之前一直用SpringBoot1.5的版本,所以直接在yml里按照1.5的版本配置了属性,没想到2.x直接不能用了.首先是数 ...
- oracle执行命令显示2,oracle数据库执行脚本时常用命令总结
收集了一篇oracle数据库执行脚本常用命令总结,希望给同学带来一些帮助. 1. 执行一个SQL脚本文件 代码如下 sqlplus user/pass@servicenamefile_name.sql ...
- oracle中key,mysql中的key在oracle中是什么
mysql中的key在oracle中是什么 说明一下.key在oracle中对应的是什么? 比如说: CREATE TABLE `AdBanner` ( `BannerId` int(8) NOT N ...
最新文章
- 【青春须早为,岂能长少年】一个初入职场程序员的阶段总结
- android碎片调用动态碎片,Android Training - 使用碎片创建一个动态UI
- android查看控件的xml属性,006 Android XML 控件属性设置技巧汇总
- linux安装rsync在各主机之间同步文件
- c#统计字符串中数字字符的个数【C#】
- Window下本地redis的安装、配置以及java版试用
- Linux随笔 - 修改主机名
- 云数据库MySQL5.7单机基础版上线
- 明解C语言第四章习题
- PHP生成一寸照片代码,用PS制作1寸证件照方法介绍
- 北京知产局:鼓励当事人用区块链,获取、固定知识产权纠纷证据
- 软件工程基础-个人项目-数独游戏
- 旧电脑更新win10日记
- 【三子棋】C语言实现简易三子棋
- 使用tk.mapper和pagehelper一个bug记录:没有为 'PAGE_TABLE_ALIAS' 的列 4 指定任何列名称
- 保罗兰德作品赏析_保罗·兰德简介
- html加拼音注释,HTML——格式化文本标记、拼音/音标注释ruby 标记和rt/rp 标记、段落缩进标记blockquote、预格式化标记pre...
- 单页网站不会限制您的选择
- Audio的播放流程
- 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用