sqlite2からMySQLへデータ移行

さくらのレンタルサーバで気付いたらsqlite2が消えていて(sqlite3は存在する)、
結果としてアクセス解析に使っていた lapisが動かなくなっていた。

とりあえずDBをMySQLへ変更した。

sqlite2からMySQLへのデータの変換についてググったらいくつか方法はあるようだが、とりあえずsqlite2(以下2系)からsqlite3(以下3系)へ変換し、mysqlへ変換することにした。

幸いCORESERVERには2系の環境が残っていたのでログを移動。
残っていなければソースから2系を入れるつもりだった。

2系から3系へ変換。
sqlite sqlite.db .dump | sqlite3 sqlite3.db

sqlite3からmysqlへ変換の方法については公開されていたスクリプトを使うことにした。
2系のSQLのままこのスクリプトを走らせている記事もあったので、もしかして3系に変換しなくても良かったのかもしれない。
http://w.vmeta.jp/tdiary/20120508.html
http://www.redmine.org/boards/2/topics/12793
↑から sqlite3-to-mysql.py Magnifier (3.382 KB) をDL

sqlite3 sqlite3.db .dump > sqlite3dump.sql
cat sqlite3dump.sql | python sqlite3-to-mysql.py > mysql.sql

そのままインポートしたら一部が文字化けしたのでeucへ変換
nkf —overwrite -e *.sql

インポート。
mysql -h mysqlXXX.db.sakura.ne.jp -uユーザー名 -p -f lapisのDB名 < mysql_lapis.sql

おしまい。

ブックマーク パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です