2013-04-06 229 views
-1

我運行heroku運行db:migrate後,出現此錯誤。 。該應用程序在開發中運行良好。我也在本網站上做了一些研究,並嘗試了幾種解決方案,似乎無法正常工作。有人幫我弄清楚我該如何解決這個問題?heroku遷移問題

== CreatePins: migrating ===================================================== 
-- create_table(:pins) 
NOTICE: CREATE TABLE will create implicit sequence "pins_id_seq1" for serial column "pins.id" 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

PG::Error: ERROR: relation "pins" already exists 
: CREATE TABLE "pins" ("id" serial primary key, "description" character varying(255), "created_at" timestamp N 
OT NULL, "updated_at" timestamp NOT NULL) /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.13/lib/active_re 
cord/connection_adapters/postgresql_adapter.rb:650:in `exec' 

回答

0

所以這是告訴你pins已經存在。這可能是因爲您有兩次遷移創建了pins,或者您設法創建了一個表,而Rails不知道/記住它正在運行遷移。我發現如果您使用heroku db:push將單個表(在這種情況下爲pins)推送到Heroku但不包含schema_migrations的內容,則您可以進入此狀態,因此當您嘗試運行遷移時,該表存在。

如果它是新的,並且您沒有任何針腳數據,您可以使用psql,pgadmin工具等來刪除針表,重新運行遷移並讓Rails執行遷移並存儲它已完成的事實(它在schema_migrations表中存儲遷移的標識)