MySQLのデータベースをSQLiteに変換する

MySQLのデータベースを
SQLiteに変換する

— RubyのSEQUELでお手軽変換 –

▪️はじめに

MySQLで管理しているデータをアプリで使用するために、データ変換の方法を探していました。
ネット上の記事でMySQLから吐き出したDumpファイルを取り込んだり、スクリプト組んだりというのはあったのですが、面倒くさがりな私はもっと楽な方法ないかな〜と調べていたところ、sequelを使った方法をstackoverflowで見つけたのでご紹介します。

 

▪️▪️これまでの経緯

SQLiteって、データ編集するの大変!良いツールが無いな〜。コマンドライン苦手だし。
SQLiteって、ファイルだからお手軽だけど、コピーしすぎて何がどれだかわからなくなった!
もっといいSQLiteの管理方法ないかな〜
使い慣れたMySQLをマスタにできるといいんだけど。
MySQLで修正してSQLiteに吐き出すフローにすれば管理しやすいんじゃね。
MySQLからSQLiteに一発変換できるといいよね。

ということで。

▪️環境

Mac OSX 10.10.2

MySQL  (今回はMac上に設置したMySQLを使用しました。)

Ruby 2.2.0p0

RubyGems 2.4.5

 

▪前準備

▪▪️Rubyの導入

Macだと、標準でRuby、Gemが入っているのでそのままでも行けるとは思います。
今回は試す前に最新版にしちゃったので、問題があったら最新版にアップデートしてください。

 

▪️▪Sequelの導入

SequelはRubyのSQLライブラリです。
通常はRubyのスクリプトでデータベースを扱うために利用されています。

 

▪▪▪インストール

ターミナルにて以下のgemコマンドを実行

sudo gem install sequel

これでSequelがインストールされました。簡単!

 

▪▪RubyのDBアダプタのインストール

MySQLとSqliteにアクセスするため、各々のDBアダプタをインストールします。
同じくターミナルより以下のコマンドを実行

gem install mysql2

gem install sqlite3

無事DBアダプタがインストールされました。

 

▪️▪️MySQLについて

今回はローカル上のMySQLを使ってみました。

 

▪DB️変換

前準備さえ済んでいればいきなりDB変換作業です。
ターミナルより以下のコマンドを実行します。
コマンドは各々の環境に合わせて修正してください。

sequel mysql2://user:password@hostname/databasename -C sqlite://outputdbname.sqlite

user:MySQLにアクセスするユーザ名
password:上記ユーザのパスワード
hostname:MySQLのアドレス
databasename:変換するデータベース名
outputdbname:出力するファイル名

以上でカレントディレクトリにsqliteファイルが出力されました。わぁい!

ページの先頭へ戻る