DMLを実行するrubyスクリプトをmigrationファイルのように管理するRailsプラグインを作った...

Preview:

Citation preview

rails_db_patch

Hamamatsu.rb #48 Yuto Ogi

職業railsエンジニアになって約半年。

課題

仕様変更や顧客要望で本番環境のDBへ insert / update sqlを実行することがある。

課題

db/seed.rb とかもあるけど、 複数回実行するような用途ではない。 現在はrails console内で操作しているが、

実行履歴が残らない/別環境に同じことをする場合面倒い。

欲しい機能

デプロイのたびに1回だけdbスクリプトを実行する仕組み。 migrationファイルのように管理したい。

作りました

作りました

Install

gem install “db_patch”

Commands

rake db:patch:clear # clear database rake db:patch:execute # execute patch rake db:patch:init # initialize database rake db:patch:new # create new patch file

コードなど• プロジェクトで使う用途で突貫で作ったので不具合あるかも。

• 実行履歴の管理は、migrationと同じようにDatabaseにテーブルを用意しています。

• ruby内で.rbを実行するのは require “rubyファイル名”で良いのか・・・

• spec書いていない。

rubygems.org への登録

• rake release で一撃。超簡単。

おわり

Recommended