[Rails] 壓縮 migrate 檔
如果 rails 專案夠大,migrate 檔可能會有上百隻
有時候在執行 migration 的時候跑很久,有沒有辦法可以整理它 ?
答案是有的
使用 Squasher 這隻 gem。可以將 migrate 檔壓縮成一隻
Install:
# Gemfile.rb
gem 'squasher', '>= 0.6.0'
// setup squasher
$ bundle binstub squasher
Use
官方建議停止所有的 preloading systems (e.g. spring, zeus …) 在進行操作
squasher [options] year[/month][/day]
example: 範例使用 rails101 專案 , db 下的 migration 檔都是 2017xxxx
下 squasher 指令 , 會先建立一個叫做 tmp 的 database , 把 migrations 丟進去
接著會問你要不要建立名為 squasher
的 database
建議是選擇 yes
第二個是要不要清除 database 由舊的 schema migration 記錄 建議是選擇 no , 若選了 yes 本來的 schema_migrations 記錄都會不見
壓縮完的成果,migation 檔剩一隻
剛剛選擇 yes 建立的 squasher db , schema_migrations 裡的 version 跟原來的 rails-101 一樣