SQLite迁移到MySQL
SQLite迁移到MySQL
简介
将SQLite数据库迁移到MySQL数据库涉及几个主要步骤,包括导出SQLite数据、转换数据格式、导入数据。
具体步骤
导出SQLite数据
导出Schema
1
sqlite3 one-api.db .schema > sqlite_schema.sql
导出数据
1
sqlite3 one-api.db .dump > sqlite_data.sql
调整格式
为了保证SQL语句的兼容,需要将SQLite的特有的格式,修改为MySQL的格式。下面为我总结的一般规则(下面的方括号应被忽略):
1
2
3
4
5
6
7
8
9
10
将 ["] 改为 [`]
也可以移除全部的 ["] ,但是如果有一些函数名作为字段名(e.g. regexp)时将会遇到错误
需要注意一些默认为 ["] ,其作用不在字段上的,不应被替换而应当被保留
移除所有的 [BEGIN TRANSACTION] [COMMIT] 以及 任何包含 [sqlite_sequence] 的(整)行
将所有 [autoincrement] 改为 [auto_increment]
将所有 ['f'] 改为 ['0'] 并将所有 ['t'] 改为 ['1']
或者['False']改为['0']及['True']改为['1']
text字段不能设置unipue,需改为varchar(255)
注意sqlite是不区分类型的,所以有些整形字段和text字段要修改配合mysql。
默认设为CURRENT_TIMESTAMP的字段类型一定为TIMESTAMP。
其他
你也可以使用navicat提供的数据传输功能,但是不知道我为什么没有成功。
本文由作者按照
CC BY 4.0
进行授权