2016-07-20 19 views
0

要するに私はDevilsでRails APIを持っており、Reactアプリケーションでjsonファイルを使うことができるようにHerokuにデプロイしたいと思っています。私はそれをHerokuに移行しようとしているときにエラーが発生しています:HerokuへのデプロイPG :: DuplicateColumn:ERROR:

"PG :: DuplicateColumn:ERROR:リレーション" reviews "の列" user_id "がすでに存在しています :ALTER TABLE" reviews "整数 "

何かDeviseが既に作成しているため、移行ファイルを削除すると誰かが教えてくれました。どちらにしても助けにならない。

私はあなたがそれを必要とするかどうかわからないんだけど、これは私のスキーマファイルは次のようになります。はい、私の推測では、マイグレーションが重複しているため、エラーがスローされ、二回実行されている

ActiveRecord::Schema.define(version: 20160719152952) do 

    # These are extensions that must be enabled in order to support this database 
    enable_extension "plpgsql" 

    create_table "games", force: :cascade do |t| 
    t.string "title" 
    t.text "description" 
    t.integer "review_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "games", ["review_id"], name: "index_games_on_review_id", using: :btree 

    create_table "reviews", force: :cascade do |t| 
    t.integer "rating" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "user_id" 
    t.integer "game_id" 
    end 

    add_index "reviews", ["game_id"], name: "index_reviews_on_game_id", using: :btree 
    add_index "reviews", ["user_id"], name: "index_reviews_on_user_id", using: :btree 

    create_table "users", force: :cascade do |t| 
    t.string "email",        default: "", null: false 
    t.string "encrypted_password",    default: "", null: false 
    t.string "reset_password_token" 
    t.datetime "reset_password_sent_at" 
    t.datetime "remember_created_at" 
    t.integer "sign_in_count",      default: 0, null: false 
    t.datetime "current_sign_in_at" 
    t.datetime "last_sign_in_at" 
    t.inet  "current_sign_in_ip" 
    t.inet  "last_sign_in_ip" 
    t.datetime "created_at",          null: false 
    t.datetime "updated_at",          null: false 
    t.string "authentication_token", limit: 30 
    end 

    add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree 
    add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree 

    add_foreign_key "games", "reviews" 
    add_foreign_key "reviews", "games" 
    add_foreign_key "reviews", "users" 
end 
+0

あなたがはい、以前のレビューテーブルに –

+0

をUSER_IDを追加するための移行を持っているようにレビューが属しているので、それは私にそれがUSER_IDを見つけることができなかったというエラーを与えた、と私は検討するユーザーを追加するには、移行を作ったようですユーザに提供する。当時は問題を解決しましたが、正しい方法ではありませんでしたか? – Jakeroo

答えて

1

、索引付けされた列がすでに存在するためです。

代わりに何かを実行することによって、移行ファイルを使用してDBスキーマのエンドポイントにアクセスすることはできません。

heroku run rake db:schema:load 

これが機能するかどうかを確認してください。

また、これは少し奇妙です。

add_foreign_key "reviews", "users" 

マイグレーションでこれを追加しましたか?私は関係のためにこれを通常はしません、以下は十分です。インデックスが私のビューで十分である(間違っている可能性があります)ので、add_foreignも削除できるかどうかを確認してください。

add_index "reviews", ["user_id"] 
関連する問題