我不断收到错误消息: - add_column(:articles,:user_id,:integer) 耙子流产了! StandardError:发生错误,此以及所有后续迁移都已取消:
SQLite3 :: SQLException:重复的列名:user_id:ALTER TABLE“articles”ADD“user_id”integer
这是我所做的所有迁移:
class AddUserIdToArticles < ActiveRecord::Migration
def change
add_column :articles, :user_id, :integer
end
end
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :username
t.string :email
t.timestamps
end
end
end
class AddDescriptionToArticles < ActiveRecord::Migration
def change
add_column :articles, :description, :text
add_column :articles, :created_at, :datetime
add_column :articles, :updated_at, :datetime
end
end
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
end
end
end
答案 0 :(得分:3)
错误已开启
class AddUserIdToArticles < ActiveRecord::Migration
def change
add_column :articles, :user_id, :integer
end
end
因为表user_id
articles
您可以通过将代码更改为:
进行验证class AddUserIdToArticles < ActiveRecord::Migration
def change
unless column_exists? :articles, :user_id
add_column :articles, :user_id, :integer
end
end
end
但是我没有建议,列不应该在第一位,或者你只是想添加一个已经存在的列。
顺便说一下,我建议在外键中添加一个索引,比如user_id