linux下数据库切换过程记录:sqlite3 -> mysql
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;