首页 > 技术文章 > linux下数据库切换过程记录:sqlite3 -> mysql

jessicaDuan 2017-10-18 11:01 原文

1、sqlite导出:注意按照表之间的依赖顺序导出

.output someDir/myDB.sql
.dump table1
.dump table2
.dump table3

 

2、处理.sql兼容性

参照脚本:https://github.com/athlite/sqlite3-to-mysql

(1)执行sqlite3-to-mysql sourceDri/myDB.sql > targetDir/myDB.sql

(2)手动修改 targetDir/myDB.sql

a) 因大小写不敏感可能导致表有数据丢失:在table的目标字段后添加CHARACTER SET utf8 COLLATE utf8_bin
b) 针对schema、sql、limit、offset等可能为保留字的字段,需要用`引号包裹: `XXX` 
c) sqlite中定义为INTEGET NOT NULL的主键会被默认为自增长,但在mysql中需要手动加上AUTO_INCREMENT
 
3、mysql导入
 
create database dbName CHARACTER SET utf8;
use dbName;
SET FOREIGN_KEY_CHECKS = 0;
source XXX/myDB.sql;
SET FOREIGN_KEY_CHECKS = 1;

推荐阅读