Railsのmigrationファイルをまとめる
jalkoby/squasher
開発開始から3年ほど経過したシステム。migarationファイルが400ファイルになりました。
過去のmigrationファイルをまとめてくれるGemでsquashしました。
https://github.com/jalkoby/squasher
database_rewinderとかnattoが入っているとエラーが出るので、以下に備忘まで。
Gemfileの変更
1 2 3 4 5 |
#追加 gem 'squasher' #コメントアウト # gem 'database_rewinder', '~> 0.8.2' |
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をコピーしているだけなんですね。