ノノログ

ホーム / ブログ / DB / SQLiteからMySQLへデータのマイグレーション(変換)

SQLiteからMySQLへデータのマイグレーション(変換)

DB

WEBでいろいろググって手動で変換してたけど、うまく行かなかった。
英語で検索したらすぐに変換スクリプトが出てきたのでそれを試したらだいたいうまくいったよ!って話。

やったこと

SQLiteのダンプファイルをとって、テキストエディタで手動で変換してたんだけど、うまくいかない。
TRANSACTIONやら、AUTOINCREMENTやら、データ型やらを変換してたけどまぁインポートはうまくいかない。
うまくいかないのは正規表現などの記事の文字列あたりがおかしいと怒られる。その辺りのデータを一旦削除するとインポート自体はまあ通った。しかしインポートされたデータを見ると、booleanあたりがおかしい。

この辺りで2時間程度時間を費やし心が折れてきた・・もうめんどくさいお(`;ω;´)
日本語で検索してんのが悪いんじゃないかと思い、「SQLite to MySQL」でググると一発でpyhonスクリプトが出てきた。

[記事] http://fabianpeter.de/cloud/owncloud-migrating-from-sqlite-to-mysql/ 
スクリプトのダウンロード 

 

こうするといいよ!

前提

  • pythonが動作する環境
  • sqlite3が動作する環境

手順1

SQLiteデータのダンプ

# sqlite3 target.db .dump > dump.sql

手順2

スクリプトのダウンロード
スクリプトに実行権限の付与

# wget http://www.redmine.org/attachments/download/6239/sqlite3-to-mysql.py
# chmod a+x sqlite3-to-mysql.py

手順3

変換の実行

# cat dump.sql | python sqlite3-to-mysql.py > target.sql

手順4

MySQLにリストア

mysql -u USER -p DB < target.sql

なんかおかしいとこもある

ほぼほぼOKなんだけど、特殊な文字列はちょっとおかしいところがあった。
でもまあ許与用範囲。

このエントリーをはてなブックマークに追加