因此,我終於準備好允許一些朋友使用我在Heroku上託管的Ruby on Rails應用程序。我想在開發過程中獲得一些反饋意見。如果我在實時Ruby on Rails應用程序中更改數據庫,如何更新數據?
如果我需要以某種方式修改數據庫會發生什麼?數據庫中會有數據,所以我將不得不更改數據以反映數據庫中的更新,但我不確定這是如何完成的。謝謝閱讀。
因此,我終於準備好允許一些朋友使用我在Heroku上託管的Ruby on Rails應用程序。我想在開發過程中獲得一些反饋意見。如果我在實時Ruby on Rails應用程序中更改數據庫,如何更新數據?
如果我需要以某種方式修改數據庫會發生什麼?數據庫中會有數據,所以我將不得不更改數據以反映數據庫中的更新,但我不確定這是如何完成的。謝謝閱讀。
通常最好的做法是爲真正的用戶創建一個生產數據庫。 (即使你的應用程序仍處於測試階段)。擁有一個單獨的生產和開發數據庫將使您的生活更輕鬆。
例如:開發數據庫通常已經被破壞的數據,這意味着更少的虛擬數據等。
歡呼
sameera
你使用遷移創建數據庫?如果是這樣的話,那麼您所要做的只是改變數據庫就是創建一個遷移,在數據庫中添加/刪除/更改表。例如:
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工作。