本厚木のエンジニアブログではある

日々の開発で出たエラーや日常などいろいろ書いていくブログです。

Rails Squasherを使って過去のmigrationファイルをまとめる方法

過去のmigrationファイルがかなり増えてしまったのでmigrationファイルを一括でまとめてくれるGem「Squasher」を使って migrationファイルを1つのファイルにまとめた。 メモ程度にSquasherの使い方、導入方法を書いた。

Squasherの導入方法

ターミナルに
$gem install squasher

または直接

gem 'squasher'をgemfileの任意の場所に貼り付ける

https://github.com/jalkoby/squasher

作った人がcapistrano, rubocopより下に記入しましょうとたぶん言っているので良さげなところに貼り付ける

こんな感じ(当方バージョンなしでやりました)

group :tools do
  gem 'squasher', '>= 0.3.0'
end

そして
$bundle install

これで導入は完了となります。

Squasherの使い方

$squasher 2017

こちらで2017年より過去のmigrationファイルを一つにまとめてくれます。
実際に使うことができたので問題ないと思います。

下記のように日付まで渡すことで、詳細にそれ以前のマイグレーションファイルをまとめてくれるそうです。
$squasher 2016/10 $squasher 2016/10/10

Squasherの問題というか我儘ですが

年ごとにmigrationファイルをまとめることはできなかった

2014年のmigrationファイルは2013年migrationファイルに1つに
2015年は2015年で1つにしたかったのですが

こんな感じ

2014_migration.rb(まとめたやつ)
2015_migration.rb(まとめたやつ)
2016_migration.rb(まとめたやつ)
20170000000_migration.rb(今年のはまとめない↓)
20170000001_migration.rb
20170000002_migration.rb
20170000003_migration.rb

この「Squasher」では対応することができなさそうでした。
仕方なく2017年より過去のmigrationファイルを1つにまとめました。

もしやり方があれば教えてください。。