Railsのmigrationファイルをまとめる

Techrails, ruby

jalkoby/squasher

開発開始から3年ほど経過したシステム。migarationファイルが400ファイルになりました。
過去のmigrationファイルをまとめてくれるGemでsquashしました。
https://github.com/jalkoby/squasher

database_rewinderとかnattoが入っているとエラーが出るので、以下に備忘まで。

Gemfileの変更

bundle install します。

nattoを使っているとエラーになるので、requireしている箇所はコメントアウトします。
# require ‘natto’

migration実行

bin/rake db:reset

squasherの実行

rails5.0バージョンで実行します
squasher 2017 -m 5.0

2017XXXXXXXXXX_init_schema.rb にまとまります。

database_rewinder, nattoなどコメントアウトした場所をもとに戻し、bundle installして完了。

注)新規にmigrationすると、各テーブルのPKのauto_incrementが消えてしまうので、2017XXXXXXXXXX_init_schema.rbから、id: :integerを全て削除して対応しました。

追記:charもvarcharになってしまいました。schema.rbをコピーしているだけなんですね。