我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
当前回答
若您的代码并没有和其他代码共享,那个么最好的选择就是只执行rakedb:rollback然后在migration和rakedb:migrate中编辑列名。就是这样
您可以编写另一个迁移来重命名列
def change
rename_column :table_name, :old_name, :new_name
end
就是这样。
其他回答
从API:
rename_column(table_name, column_name, new_column_name)
这将重命名列,但保持类型和内容不变。
如果当前数据对您不重要,您可以使用以下方法删除原始迁移:
rake db:migrate:down VERSION='YOUR MIGRATION FILE VERSION HERE'
如果没有引号,请在原始迁移中进行更改,然后通过以下方式再次运行升级迁移:
rake db:migrate
您可以编写迁移,运行以下命令以更新列名:
rename_column :your_table_name, :hased_password, :hashed_password
此外,确保用新列名更新代码中旧列名的任何用法。
def change
rename_column :table_name, :old_column_name, :new_column_name
end
$: rails g migration RenameHashedPasswordColumn
invoke active_record
create db/migrate/20160323054656_rename_hashed_password_column.rb
打开该迁移文件并按如下方式修改该文件(请输入原始table_name)
class RenameHashedPasswordColumn < ActiveRecord::Migration
def change
rename_column :table_name, :hased_password, :hashed_password
end
end