我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
当前回答
打开RubyonRails控制台并输入:
ActiveRecord::Migration.rename_column :tablename, :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-迁移或活动记录迁移。
我们可以手动使用以下方法:
我们可以手动编辑迁移,如:
打开app/db/migrate/xxxxx_migration_file.rb将hased_password更新为hashed_passwords运行以下命令$>rakedb:migrate:down VERSION=xxxxxxxxx
然后它将删除您的迁移:
$> rake db:migrate:up VERSION=xxxxxxxxx
它将使用更新的更改添加您的迁移。
def change
rename_column :table_name, :old_column_name, :new_column_name
end
生成迁移文件:
rails g migration FixName
这将创建db/migrate/xxxxxxxxxxx.rb。
编辑迁移以实现您的愿望:
class FixName < ActiveRecord::Migration
def change
rename_column :table_name, :old_column, :new_column
end
end
只需创建一个新的迁移,并在一个块中使用rename_column,如下所示。
rename_column :your_table_name, :hased_password, :hashed_password