2016-04-18 2 views
2

エラーメッセージが表示され続けます: - add_column(:articles、:user_id、:integer) rake aborted! はStandardError:エラーが発生している、これ以降のすべての移行がキャンセル:Ruby on Railsの列名が重複しています:user_id:ALTER TABLE "articles" ADD "user_id"整数

するSQLite3 ::のSQLException:user_idは:列名が重複TABLE "の記事は" ADD ALTER "user_idは" 整数ここ

iがすべて移行されています製:

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 CreateArticles < ActiveRecord::Migration 
    def change 
    create_table :articles do |t| 
     t.string :title 
    end 
    end 
end 

答えて

2

user_idはすでにテーブルの上にarticles

が存在するため、エラーがあなたにコードを変更することで確認することができ

class AddUserIdToArticles < ActiveRecord::Migration 
    def change 
    add_column :articles, :user_id, :integer 
    end 
end 

である:

class AddUserIdToArticles < ActiveRecord::Migration 
    def change 
    unless column_exists? :articles, :user_id 
     add_column :articles, :user_id, :integer 
    end 
    end 
end 

しかし、私はそれをアドバイスしていません。カラムが最初にあってはいけません。あるいはすでに存在するカラムを追加しようとしているだけです。私の答えは私に投票を与えると認められたとして、私の答えをマークすること自由に感じ、あなたを助けている場合

user_id

+0

はあなたに感謝のようにところで、私は、あなたの外部キーにインデックスを追加するためのアドバイスですが、 –

+1

@MikeShasacoを@rorraそれは、stackoverflowの仕組みです;) – rorra

関連する問題