记一次H2与MySQL之间的数据迁移
最近在用Golang写爬虫,使用的ORM是Gorm,暂不正式支持嵌入式的H2数据库,所以就用mysql来存爬取到的数据。
由于原先数据是放在H2数据库里的,便产生了在H2和Mysql之间迁移数据的需求。
表结构
之前是使用Flyway对H2数据库进行的版本管理,所以之间写的Sql保存了下来,H2与Mysql的Sql语法还是比较像的:
H2 创建 user表
1 | create table USER |
Mysql创建user表
1 | create table user |
H2增加一个字段
1 | alter table user |
mysql增加一个字段
1 | alter table USER |
H2删除字段
1 | alter table COMMENT drop column CITED_COMMENT_CONTENT; |
mysql删除字段
1 | alter table COMMENT drop column CITED_COMMENT_CONTENT; |
H2修改字段
1 | alter table COMMENT alter column CITED_COMMENT_CONTENT VARCHAR(512); |
mysql修改字段
1 | alter table comment modify cited_comment_content varchar(512); |
IDEA可以使用ctrl+shift+u把字母批量的改为大写或小写。
这样修改sql的目的是想让mysql接续H2的版本控制,大数据量的数据应使用其他方式。
数据
表结构迁移完成后,数据的迁移就变得很简单。以前在Oracle和Mysql的数据迁移中,我使用的是Navicat,现在发现IDEA自带的数据库管理工具也挺好用的,IDEA的数据跨库迁移:


找到对应表,确认即可,注意错误信息。