Kandata
Kandataは、TSVファイルを自分のローカルのMySQLデータベース内に簡単にロードするためのツールです。 現在はコマンドラインツールとしてのみ動作します。
インストール方法
以下のコマンドでインストールしてください。
$ gem install kandata
MySQLサーバーがローカルで動作している必要があります。
利用方法
Rubyスクリプト内から利用する場合
```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.