在本地建了一个博客,用的是 sqlite3,而 sina app engine 只支持mysql数据库,要想在sae上面部署这个博客就要想办法将sqlite3的数据库转到mysql上来。
一般的思路就是先将 sqlite3的本地文件app_sql.db 导出成sql语句,再导入进 mysql中。
先导出到app.sql中:
sqlite3 app_sql.db .dump > app.sql
再导入mysql的blog数据库中:
mysql -uroot -p blog < app.sql
结果却提示语法错误,看来不能直接将sqlite3的sql文件直接导入到mysql的数据库中,必须先转化。幸好网上有高人已经有解决方案,要用过工具sqlite3-to-mysql.py。
于是,
先删掉blog数据库再重新建立blog数据库
$ mysql -uroot -p
mysql> drop database blog;
mysql> create database blog;
mysql> exit
然后用 sqlite3-to-mysql.py 处理app.sql文本文件
python sqlite3-to-mysql.py app.sql >new.sql
此时就可以将new.sql导入到mysql的blog数据库中了
mysql -uroot -p blog<new.sql
当然上面说的是将sqlite3导入到本地 mysql数据库中,而导入到 sae的mysql中,其实可以直接通过 sae MySQL服务首页导入new.sql,在此顺便一提。
用 docker 镜像 python:2.7.18-stretch 运行 python2
docker run --name py -it --rm -v /tmp:/tmp python:2.7.18-stretch bash -c "cd /tmp && python ./sqlite3-to-mysql.py /tmp/m.sql > /tmp/new_m.sql"