Kandata

CircleCI Gem Version

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ファイル名 [--force]

実行すると、ローカルの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.