Ruby on Rails 重新設置 Database
重設 Database 的方法
Status
在重新設置資料庫前先執行 db:migrate:status
,看看現在資料庫的 migrate 的狀態是什麼。
1 | # rake db:migrate:status |
Basic
在重新設置資料庫時,最簡單的方法就是先把資料庫刪除,然後重新建一個,最後在 migrate:
1 | db:drop db:create db:migrate |
Reset
reset 比較不同的地方是,他是載入 schema 而沒有去 migrate 新的資料,用在測試 seed.rb 的資料有沒有正確的時候非常好用。
db:schema:load
依照 schema.rb 建立 tabledb:setup
執行db:create
db:schema:load
db:seed
db:reset
執行db:drop
db:setup
1 | rake db:reset db:migrate |
Without Drop
如果不想把資料庫刪掉,又要重新設置,可以先 rollback 回最原始的樣子,然後在重新 migrate。
1 | rake db:migrate VERSION=0 |
Redo
或是直接使用 db:migrate:redo
,他會執行 db:rollback
db:migrate
,但只會回到上一個版本,不會回到最前面,可以加上 STEP 參數選擇要回到多少個版本。
1 | rake db:migrate:redo |
新的 migration
如果是已經上線的版本就不建議 rollback 回去,因為所有資料庫裡面的資料都會消失,而是新建一個 migration 來修改現有的 db/schema.rb
。