我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
我错误地将列命名为hased_password而不是hashed_password。
如何使用迁移重命名此列来更新数据库架构?
当前回答
您可以编写迁移,运行以下命令以更新列名:
rename_column :your_table_name, :hased_password, :hashed_password
此外,确保用新列名更新代码中旧列名的任何用法。
其他回答
我在rails 5.2上,试图重命名device User上的列。
rename_column位对我有效,但单数:table_name抛出了“User table not found”错误。Plural为我工作。
rails g RenameAgentinUser
然后将迁移文件更改为:
rename_column :users, :agent?, :agent
哪里:代理人?是旧的列名。
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名称:字符串
生成RubyonRails迁移:
$:> rails g migration Fixcolumnname
在迁移文件中插入代码(XXXXX fixcolumnname.rb):
class Fixcolumnname < ActiveRecord::Migration
def change
rename_column :table_name, :old_column, :new_column
end
end
我们可以手动使用以下方法:
我们可以手动编辑迁移,如:
打开app/db/migrate/xxxxx_migration_file.rb将hased_password更新为hashed_passwords运行以下命令$>rakedb:migrate:down VERSION=xxxxxxxxx
然后它将删除您的迁移:
$> rake db:migrate:up VERSION=xxxxxxxxx
它将使用更新的更改添加您的迁移。
$: 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