我是rails的新手,并创建了一个自定义迁移来使用Rails Generate更改我的数据库结构。这是我发布的命令:rails g migration users。
现在,在它创建的文件中,我输入了:
class Users < ActiveRecord::Migration
def change
add_column :first_name
add_column :last_name
remove_column :name
end
end
当我运行rake db:migrate时没有任何反应。我需要做些什么来解决这个问题?
答案 0 :(得分:2)
它根本没有运行?根据您提供的信息很难说。也许您应该尝试使用更独特的名称进行迁移?类似的东西:
rails g migration ConvertUsersNamesToSingleField
我不确定两个具有相同名称的迁移是否很酷。但是像Users
这样的短通用名称可能会成为问题。对于后代和清晰度而言,拥有冗长和描述性的迁移名称通常不会有什么坏处。
此问题同意使用非唯一名称进行迁移不起作用:Rails migrations with the same name
但即使跑步,也会引发错误。您需要在这些列调用中包含表名,并且需要在创建字段时指定类型。
class ConvertUsersNamesToSingleField < ActiveRecord::Migration
def change
add_column :users, :first_name, :string
add_column :users, :last_name, :string
remove_column :users, :name
end
end