标签:arc nsa 转化 直接 数据同步 索引 布尔 导出 db_name
手头有一个小项目,线上是 SQLite 数据库,本地开发环境为了管理方便用的是 MySQL 数据库。有时为了验证线上的一些数据问题,想要把线上的数据同步到本地来,然后导入到 MySQL 中。本来以为很简单的事情,实际还是花了些时间。
完整的过程主要分三步:
这一步很简单,用 scp
命令可以解决文件的下载。导出成 SQL 文件也只需要使用下面的命令:
sqlite3 database.sqlite .dump > sqlite_dump.sql
database.sqlite
是下载的 SQLite 数据库名称,sqlite_dump.sql
就是导出后的 SQL 格式数据文件。
SQLite 导出的 SQL 文件是无法直接在 MySQL 中使用的,需要对一些差异的语法进行转换。主要的差异点如下:
BEGIN TRANSACTION
, COMMIT
, sqlite_sequence
。varchar not null
,这种在 MySQL 中执行会报错。""
,但 MySQL 用的是上引号: ````。t
和 f
表达布尔值, MySQL 用的是 1
和 0
。AUTOINCREMENT
, MySQL 是 AUTO_INCREMENT
。转换这一步就是最耗时的了,网上搜了几个现成的转化代码,结果转换后都无法直接使用。只能自己一个一个的解决。
通过第二步的转换后,就可以直接用 mysql
命令来导入 SQL 数据了。命令格式如下:
mysql -uroot -p123456 db_name < sqlite_dump.sql
db_name
就是要在 MySQL 中要导入的数据表名称。
标签:arc nsa 转化 直接 数据同步 索引 布尔 导出 db_name
原文地址:https://www.cnblogs.com/zzxworld/p/13626291.html