Ridgepole - Rails風にデータベース構造の管理を行う
一度Ruby on Railsのデータベーススキーマ管理法に慣れてしまうと、普段のSQLを書いて実行するような方法がとても面倒に感じるようになります。あの部分だけ欲しいと思う人は多いのではないでしょうか。 そんな方に使ってみて欲しいのがRidgepoleです。テーブル構造の管理がとても簡単にできるようになります。
Ridgepoleの使い方
RidgepoleはShemafileを作成し、その中にテーブル構造を定義します。そしてconfig.ymlに記述された接続先情報に従ってSQLを実行します。SQL部分についてはActiveRecordが使われているので、多彩なデータベースに対応しています。
$ ridgepole -c config.yml --apply --dry-run
Apply `Schemafile` (dry-run)
create_table("articles", {}) do |t|
t.string("title", {:limit=>255})
t.text("text", {:limit=>65535})
t.text("author", {:limit=>65535})
t.datetime("created_at", {})
t.datetime("updated_at", {})
end
# CREATE TABLE `articles` (
# `id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY,
# `title` varchar(255),
# `text` text,
# `author` text,
# `created_at` datetime,
# `updated_at` datetime)
# ENGINE=InnoDB
$ ridgepole -c config.yml --apply
Apply `Schemafile`
-- create_table("articles", {})
-> 0.0267s
DB構造をアップデートする場合もSchemafileを更新して実行するだけです。差分をとって自動的にカラム追加や削除を行ってくれます。名前を変える場合だけ若干注意が必要ですが、一度間違える度にスキーマ用のファイルが増えていくRailsよりも手軽と言えそうです。
RidgepoleはRuby製のオープンソース・ソフトウェア(MIT License)です。