假設我已經有一個應用程序,其中包含大量遷移文件,我準備第一次將它們部署到生產環境中。據我瞭解,我有兩個基本的選擇,以獲得最高分貝在生產服務器上:db:schema:load如何影響未來數據庫:遷移動作
- A - 運行
db:migrate
,並使其循環所有的遷移還沒有運行 - 乙 - 運行
db:schema:load
,並將它從架構文件
建立DB我知道B是新鮮的部署是正確的選擇,因爲在schema.rb
評論解釋說:
# If you need to create the application database on another
# system, you should be using db:schema:load, not running all the migrations
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
我想知道的是,這會如何影響生產服務器上的遷移?例如,如果我按以下順序執行:
- 在新的生產服務器上運行
db:schema:load
。 - 在開發中更改我的模式並推送到生產。生產服務器
上
db:migrate
會發生什麼?是否知道僅使用比db:schema:load
動作更新的遷移,還是會嘗試全部運行它們?
而且你沒有想過簡單地運行這些幾個命令來檢查自己嗎? –
@MichaelSzyndel - 誰說我沒有想過? – Yarin
你的問題建議如此。如果你確實看到了它應該可以正常工作(只要遷移數據庫表在'schema:load'中填充,我並沒有檢查過它) –