2012-09-26 20 views
8

Zainstalowałem silnik blogu do refinerycms, który działa idealnie.Relacja już istnieje podczas migracji rake'u

Teraz mam generowane migrację z niektórych pól tabeli zmian (oczywiście nie refinerycms lub tabel blogu), ale ja dostaję błąd:

== 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)

Odpowiedz

10

Sprawdź swoją db/schema.rb

Najprawdopodobniej tworzona jest ta sama tabela oprócz migracji w db/migrate/[datownik] Twoja_migracja

Możesz usunąć db/migrate/[timestamp] your_migration, jeśli jest to duplikat znalezionego w schemacie i powinno działać.

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

Pg to klejnot Railsów, fragment kodu umożliwiający komunikację między Railsami i PostgreSQL. Odnosi się do twoich migracji do tabel SQL, a więc do błędu relacji. Więc, co to jest błąd mówiąc:

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

Możliwe rozwiązania:

  1. Załóż migracje tą kroplą tych, prawdopodobnie stary, tabele.
  2. Zmień nazwę migracji.
  3. Zaloguj się do PostgreSQL i upuść tabelę. Coś jak:

    $ psql -U username databasename 
    

    następnie

    database_name=# drop table table-name; 
    

    Dokładne polecenia może być nieco inna, choć.

+0

Tak, możemy rozwiązać ten problem również w ten sposób. –

+0

Ważna uwaga: Migracje są dodawane przez klejnot ActiveRecord _not_ gem pg. –

Powiązane problemy