Ruby on Rails で、スキーマ定義からモデルのファイルを生成する
Migration だけ先にがーーーっと書いたらモデルを作るのがめんどくさくなったので、Rakeのタスクを書きました。
上記ファイルをlib/tasks/model_from_schema.rakeなどとして保存して、下記のようにコマンドを実行すると使用することが出来ます。
$ bundle exec rake model_from_schema:gen
NoMethodErrorとか出たらいい感じに修正すると動くと思います
動作
app/models/下に、テーブルに対応するモデルを作成します。
また外部キーから対応するモデルにbelongs_toとhas_manyを付与します。
仕組み
ActiveRecord::Schemaをスキーマ構造を解析するようなメソッドで上書きした上で、db/schema.rbを直接loadして実行しています。
短いのでコードを読めばわかると思います。
まとめ
ちゃんと調べてないけど車輪を再発明した気がする。