SQLiteからMySQLへのDBの形式変換は難しい

タスク管理サービスのKanboardを,当初はDBにSQLiteを採用して運用していた。しかし,タスク数が増えるに連れて動作が重くなってきたため,MySQLにDBを変更することにした。

SQLは標準化されており,ダンプ時に生成されるSQLを読み込むだけだから,特に問題なくできるだろうと思っていた。しかし,これが思いの外難しかった

SQLiteのデータのダンプは以下のコマンドで行った。

sqlite3 -batch db.sqlite .dump >dump.sql

SQLiteのダンプ自体はできたのだが,このダンプデータにはSQLite特有の構文が含まれており,MySQLのSQLとの構文の違いにより,そのまま読み込めなかった。

この件については「sqlite – Quick easy way to migrate SQLite3 to MySQL? – Stack Overflow」で議論されている。順番に試していったが,どれもMySQLへのインポート時にエラーが出てしまい,うまくいかなかった。

特に,MySQL Workbenchでの方法は期待していたのだが,やはりダメだった。しかたなく,外部サービスも検討した。

こちらの「Convert / Sync from SQLite to MySQL」は失敗したが,「Database conversion – RebaseData」はサンプルデータが取り込めた。そのため,有料になるがRebaseDataに約2000円のお金を払って変換できた。

RebaseDataを使うことで実際にエラーなくMySQL 5.7.3に取り込めた。しかし,こちらの変換でもKanboard特有の都合で不十分なところがダメだった。

結局「KanboardのDBのSQLiteからMySQLへの変更」に記した通り,Kanboardのissueを漁って,有志が作成した変換スクリプト経由で取り込むことで解決した。

DBの形式変換なんて,一見すると簡単に思える作業ですら難しくて,非常に煩わしく感じてしまった。

SQLiteからMySQLへのDBの形式変換は難しい” に対して1件のコメントがあります。

コメントを残す

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