我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
当前回答
请参阅“活动记录迁移”文档中的“可用转换”部分。
rename_column(table_name, column_name, new_column_name):
重命名列,但保留类型和内容。
其他回答
从API:
rename_column(table_name, column_name, new_column_name)
这将重命名列,但保持类型和内容不变。
Rails 5迁移更改
eg:
rails g model学生Student_name:字符串年龄:整数
如果要将student_name列更改为name
注意:-如果没有运行railsdb:migrate
您可以执行以下步骤
rails d model学生Student_name:字符串年龄:整数
这将删除生成的迁移文件,现在您可以更正列名
rails g model学生姓名:string年龄:整数
如果已迁移(railsdb:migrate),请使用以下选项更改列名
rails g迁移RemoveStudentNameFromStudent student_name:字符串rails g迁移AddNameToStudent名称:字符串
rails g迁移migrationName
因此,您转到生成的迁移并添加:
rename_column :table, :old_column, :new_column
到方法
您可以编写迁移,运行以下命令以更新列名:
rename_column :your_table_name, :hased_password, :hashed_password
此外,确保用新列名更新代码中旧列名的任何用法。
对于Ruby on Rails 4:
def change
rename_column :table_name, :column_name_old, :column_name_new
end