我創建了一個屬性爲「name」的模型,但我想將其更改爲「username」。我讀過的關於數據庫遷移的一切都涉及到創建一個類或一些複雜的東西。我想要做的就是SQL中的「UPDATE TABLE」。你如何運行一次性數據庫遷移來改變它?我猜它會涉及rails console,然後是一些命令?Ruby on Rails中的一次更改模型屬性(列名)
4
A
回答
8
第一:
rails g migration rename_name_column_to_username
然後在生成的rename_name_column_to_username.rb遷移文件:
class RenameNameColumnToUsername < ActiveRecord::Migration
def self.up
rename_column :users, :name, :username
end
def self.down
rename_column :users, :username, :name
end
end
然後rake db:migrate
0
運行rails g migration RenameNameToUsername
,這將在db/migrate
創建一個新文件。
打開該文件,並添加以下到self.up
部分:
rename_column :tablename, :name, :username
然後運行rake db:migrate
3
如果您還沒有提交最初創建的「名稱」列中的代碼,你可以進入創建該列的舊遷移文件並將name
更改爲username
,然後重新生成該模式。
但是,如果您提交了代碼,則應該創建一個單獨的遷移文件,將name
重命名爲username
。
這對於跟蹤數據庫的版本控制非常重要。所以你不應該使用手動SQL(ALTER TABLE ...)來改變模式。
相關問題
- 1. Ruby on Rails更改模型的表名
- 2. 更新2款一次與Ruby on Rails中相同的屬性
- 3. Ruby on Rails中的自定義模型屬性(列名稱)標題
- 4. Ruby on Rails - Activeadmin - 具有虛擬屬性的更新模型
- 5. Ruby on Rails:從虛擬屬性構成模型的屬性
- 6. Ruby on Rails觸發每次更新序列化屬性
- 7. 在Ruby on Rails上查找並保存的模型屬性更改
- 8. 如何使用鏈接/按鈕更改列屬性 - Ruby on Rails
- 9. Ruby on Rails:獲取不屬於模型的屬性的參數
- 10. 如何使用模型中屬性的值? Ruby on Rails
- 11. 查詢ruby-on-rails中的非空模型屬性
- 12. 如何在模型中獲取對象的屬性 - Ruby on Rails
- 13. Ruby on Rails將模型列名顯示爲表的一部分
- 14. Ruby on Rails,屬性的屬性總和
- 15. Ruby on Rails:將屬性值分配到泛型模型
- 16. Ruby on Rails:在視圖中顯示模型屬性
- 17. Ruby on Rails的模型
- 18. Ruby on Rails的模型
- 19. Ruby on Rails名爲model屬性的類型
- 20. Ruby on Rails的 - 驗證與關聯的模型屬性之
- 21. Ruby on Rails的 - 嵌套的屬性:我如何從子模型
- 22. Ruby on Rails的過濾屬性在返回的模型對象
- 23. Ruby on Rails,查看屬性
- 24. 條紋一次性付款。 - Ruby on Rails
- 25. Ruby on Rails:獲取模型屬性的集合
- 26. Ruby on Rails的屬性驗證,方法,模型
- 27. 修改模型屬性on Rails的控制器
- 28. 空的屬性列表來改變Ruby on Rails的
- 29. Ruby on Rails:當更改複選框時更新模型
- 30. Ruby on Rails中的虛擬屬性