我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
当前回答
只需使用以下方法生成迁移:
rails g migration rename_hased_password
之后,编辑迁移并在更改方法中添加以下行:
rename_column :table, :hased_password, :hashed_password
这应该会奏效。
其他回答
生成RubyonRails迁移:
$:> rails g migration Fixcolumnname
在迁移文件中插入代码(XXXXX fixcolumnname.rb):
class Fixcolumnname < ActiveRecord::Migration
def change
rename_column :table_name, :old_column, :new_column
end
end
您有两种方法可以做到这一点:
在这种类型中,当回滚时,它会自动运行与其相反的代码。def更改重命名列:表名称,:旧列名称,:新列名称终止对于这种类型,它在rakedb:migrate时运行up方法,在rakedb:rollback时运行down方法:定义self.up重命名列:表名称,:旧列名称,:新列名称终止定义自己向下重命名列:表名称,:新列名称,:旧列名称终止
只需使用以下方法生成迁移:
rails g migration rename_hased_password
之后,编辑迁移并在更改方法中添加以下行:
rename_column :table, :hased_password, :hashed_password
这应该会奏效。
rails g迁移migrationName
因此,您转到生成的迁移并添加:
rename_column :table, :old_column, :new_column
到方法
RubyonRails的某些版本支持向上/向下迁移方法,如果您的迁移中有向上/下方法,那么:
def up
rename_column :table_name, :column_old_name, :column_new_name
end
def down
rename_column :table_name, :column_new_name, :column_old_name
end
如果您在迁移中使用了更改方法,那么:
def change
rename_column :table_name, :column_old_name, :column_new_name
end
有关更多信息,请参阅:RubyonRails-迁移或活动记录迁移。