[英]If I change the database in a live Ruby on Rails app, how do I update the data?
因此,我終於准備好允許一些朋友使用我在Heroku上托管的Ruby on Rails應用程序。 我想開始獲得一些反饋,因為我還在不斷發展。
如果我需要以某種方式更改數據庫怎么辦? 數據庫中將有數據,因此我將不得不更改數據以反映數據庫中的更新,但是我不確定該如何完成。 謝謝閱讀。
通常,最佳實踐是為實際用戶創建生產數據庫。 (即使您的應用仍處於測試階段)。 擁有獨立的生產和開發數據庫將使您的生活更加輕松。
例如:開發數據庫通常具有損壞的數據,這意味着較少的虛擬數據等。
干杯
薩梅拉
您是否使用遷移來創建數據庫? 如果是這樣,那么更改數據庫所需要做的就是創建一個遷移,該遷移在數據庫中添加/刪除/更改表。 例如:
class AddMyColumnToMyTable < ActiveRecord::Migration
def self.up
add_column :table, :my_column, :string
end
def self.down
remove_column :table, :my_column
end
end
然后,要添加/刪除數據,您可以像下面這樣創建數據遷移:
class AddDataToMyTable < ActiveRecord::Migration
def self.up
tables = Table.all
tables.each do |table|
table.my_column = 'new value' # Put more meaningful data population here
table.save!
end
end
def self.down
tables = Table.all
tables.each do |table|
table.my_column = nil
table.save!
end
end
end
數據遷移可以像您想要的那樣簡單或復雜。 在所有情況下,數據遷移不一定是填充數據庫的最佳方法,但在簡單情況下,它們確實運行良好。 (不要忘記更新具有適當關系的任何模型!)
如果您不是通過遷移創建數據庫的,那么更改數據以反映對數據庫的更新只能通過使用SQL直接操作數據庫來完成。 通過SQL進行操作始終是Rails應用程序中的一個選項,但是遷移具有明顯的優勢。 它們使您能夠提交或回滾對數據庫結構的更改,而不僅僅是對數據的更改。 而且,遷移可以為您完成SQL工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.