Screamers をリリースした

スキーマの型変換を一括で行なうマイグレーションファイルを生成する Gem となる。昨日の Rails (OSS) パッチ会で初期実装の目処が着いてリリースした。

github.com

Gemfile に gem "screamers" と追加して、bundle install すると bin/rails g screamers:migration OLD_COLUMN_TYPE NEW_COLUMN_TYPE といった様式のジェネレータが追加される。

このジェネレータで生成したマイグレーションファイルを元に手を加えて行くことで、移行準備が楽になることが目的。特に db/schema.rb が大きなプロジェクトであればあるほど役立つと思う。

ゆくゆくはサポートしていない型を指定したらそれっぽいサジェストのあるエラーにするとか、カラム名をパターンマッチで絞り込めるオプションを用意した上でマイグレーションファイルを生成するとか考えてはいるが、手が回ったらやろうかなという感じなので特に期限もなければコミットメントもない話ではある。

Gem の命名はやはりメタルソングが元になっているのと、schema と screamer の響きが似ていてスキーマの変更とか悲鳴が出ないといいなあという、スキーマ移行作業へのオマージュを含んでいたりする。

4

4

この Gem を作ろうとした出発点として Oracle enhanced Adapter での Rails 4.2 から Rails 5 への以下の移行で、テーブル数が多いと職人の手作業ではしんどいので作ろうと思ったもの。現在の初期実装でも目に見えた問題は解決しているというのはリリースに際してひとつ大きなところだった。

https://github.com/rsim/oracle-enhanced#upgrade-rails-42-or-older-version-to-rails-5