Kandata
Kandataは、TSVファイルを自分のローカルのMySQLデータベース内に簡単にロードするためのツールです。 現在はコマンドラインツールとしてのみ動作します。
インストール方法
以下のコマンドでインストールしてください。
$ gem install kandata
MySQLサーバーがローカルで動作している必要があります。
利用方法
Rubyスクリプト内から利用する場合
require 'kandata'
# TSVからデータ生成
# ローカルのMySQLサーバーのKandataデータベース内にuserテーブルを作成して、TSVでデータを流し込む
my_user = Kandata.build_from_tsv('./user.tsv')
# my_user はActiveRecordをextendしたクラスそのものなので、
# Railsのモデルクラスのように使って色々出来る。
# ex) my_user.where(last_login: nil).each do |v| v.disactivate end
コマンドラインから実行する場合
以下のように実行します。
$ kandata load_tsv TSV
実行すると、ローカルのMySQLの中にkandata.TSVファイル名というテーブルが作成され、TSVの内容がロードされます。
後は煮るなり焼くなり、自由に使ってください。
なお、TSVファイル内で最初のカラムがidという名前だった場合、そのカラムがPKとして扱われます。
最初のカラムがidではなかった場合、テーブルには自動的にidというAUTO_INCREMENTなカラムが追加されます。
先頭以外にidという名前のカラムがあった場合はエラーとなります。
--forceオプションを指定すると、実行時に同名のテーブルがあった場合は一度削除して作り直します。
指定していない場合は、エラーとなります。
制限事項
- ローカルでMySQLサーバーが動いていて
rootユーザーがパスワードなしでログイン可能な前提となっています。 - MySQL以外のRDBMSには現時点では対応していません。
idを除く各カラムはVARCHAR(128)として作られます。他の型を選ぶことは出来ません。- 各カラムへのINDEXの追加には対応していません。必要な場合は自分でSQLで
CREATE INDEXしてください。
今後の予定
- ~作成したテーブルに応じたActiveRecordモデルを自動生成できるようにする。~ done
requireで非RailsなRubyスクリプトで読み込んで使えるように。
- 作成したテーブルのバックアップなどの機能を追加する。
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/tamano/kandata.