Stan Blog

學習過程中的一些記錄

[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

2018-09-05 00 36 42

下 squasher 指令 , 會先建立一個叫做 tmp 的 database , 把 migrations 丟進去

2018-09-05 00 37 50

接著會問你要不要建立名為 squasher 的 database 建議是選擇 yes

第二個是要不要清除 database 由舊的 schema migration 記錄 建議是選擇 no , 若選了 yes 本來的 schema_migrations 記錄都會不見

2018-09-05 00 37 58

壓縮完的成果,migation 檔剩一隻

2018-09-05 00 46 09

剛剛選擇 yes 建立的 squasher db , schema_migrations 裡的 version 跟原來的 rails-101 一樣

2018-09-05 00 50 25

2018-09-05 00 50 31

Comments

comments powered by Disqus