-1

在我运行 heroku run db:migrate 之后,我得到了这个错误。. 该应用程序在开发中运行良好。我也在这个网站上做了一些研究,并尝试了几种解决方案,似乎不起作用。有人可以帮我弄清楚如何解决这个问题吗?

==  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'
4

1 回答 1

0

所以这告诉你pins已经存在。可能是您创建pins了两个迁移,或者您设法在 Rails 不知道/记住它正在运行迁移的情况下创建了一个表。我发现如果您使用heroku db:push推送单个表(在这种情况下推pins送到 Heroku 但不是其中的内容),您可以进入这种状态,schema_migrations因此当您尝试运行迁移时,表存在。

如果它是新的并且您在 pin 中没有任何数据,您可以使用 psql、pgadmin 工具等来删除 pin 表,重新运行迁移并让 Rails 执行迁移并存储它已经完成的事实(它存储schema_migrations 表中迁移的标识)

于 2013-04-07T06:27:29.897 回答