0
我已經在我的生產服務器上的數據庫表中,我創建運行db:schema:load刪除現有表並創建新的?如果是,如何不刪除現有的表和數據?
RAILS_ENV=production rake db:schema:load
現在我已經創造了一些更多的遷移和正在運行分貝:模式:再次負載,但它會因爲我放棄現有的表是在生產,我確實有數據呢?我可以在我的db/schema.rb文件中看到,我有
create_table「authentications」,:force => true do | t |
刪除和創建表格看起來是非常危險的,有沒有其他的方式來做到這一點?我正在使用postgresql
謝謝@Charles,以及我已經看到了schema.db文件,它說你如果在不同的服務器上創建相同的表格,那麼你最好使用schema.db而不是db:migrate雖然我當然不能丟失數據。所以db:migrate只會創建那些沒有創建的表?如何只運行一個特定的遷移只是爲了更安全一方? – iCyborg 2013-04-11 12:52:17
遷移就像數據庫結構的故事情節一樣,以反映不同狀態的數據庫在不同的開發狀態。他們不在那裏填充你的數據庫。如果你移動到另一臺服務器,你應該只加載模式,然後使用yaml_db之類的東西將數據從舊數據庫傳輸到新數據庫。 – weltschmerz 2013-04-11 13:18:24
Right Charles,我的意思是說我在本地服務器上創建了2個遷移,現在我想在服務器上覆制它,我可以將遷移文件放在服務器上並運行db:migrate或者運行db:schema:load,因爲我讀取那db:migrate可能會破壞事情,你更喜歡哪種方法? – iCyborg 2013-04-12 06:04:13