2012-09-26 7 views
8

完全に動作しているrefinerycmsにブログエンジンをインストールしました。今、私はいくつかのテーブルに移行を生成したレーキ移行中の関係は既にあります

は、変更を(もちろんないrefinerycmsやブログのテーブル)フィールドが、私はエラーを取得しています:

== CreateBlogStructure: migrating ============================================
-- create_table("refinery_blog_posts", {:id=>true})
NOTICE: CREATE TABLE will create implicit sequence "refinery_blog_posts_id_seq1" for serial column "refinery_blog_posts.id"
rake aborted!
An error has occurred, this and all later migrations canceled:

PG::Error: ERROR: relation "refinery_blog_posts" already exists
: CREATE TABLE "refinery_blog_posts" ("id" serial primary key, "title" character varying(255), "body" text, "draft" boolean, "published_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

答えて

10

はあなたのdb/schema.rb

をチェック

db/migrate/[timestamp] your_migrationでの移行に加えて、同じテーブルが作成されている可能性が最も高いです。

db/migrate/[timestamp] your_migrationは、見つかったものと重複する場合は削除できますスキーマでは動作するはずです。

6
PG::Error: ERROR: relation “refinery_blog_posts” already exists 

Pgは、RailsとPostgreSQL間の通信を可能にするコードの一部であるRailsの宝石です。これは、SQLテーブルへの移行を関連付けるため、関係エラーです。だから、何のエラーが言っていることは次のとおりです。

I'm trying to create table X, based on migration X, but table X already exists in the database.

考えられる解決策:

  1. それらをドロップ移行、おそらく古い、テーブルを作成します。
  2. 移行の名前を変更します。
  3. PostgreSQLにログインしてテーブルを削除します。ような何か:

    $ psql -U username databasename 
    

    その後、

    database_name=# drop table table-name; 
    

    正確なコマンドは、しかし少し異なる場合があります。

+0

はい、この問題もこの方法で解決できます。 –

+0

重要な注意:マイグレーションは、ActiveRecord gemによって追加されます.pg gemではありません。 –

関連する問題