2012-09-26 27 views
8

Tôi đã cài đặt công cụ blog cho các nhà máy lọc dầu đang hoạt động hoàn hảo.Quan hệ đã tồn tại trong quá trình di chuyển rake

Bây giờ tôi đã tạo ra một sự chuyển đổi với một số lĩnh vực bảng thay đổi (tất nhiên không refinerycms hoặc bảng blog), nhưng tôi nhận được một lỗi:

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

Trả lời

10

Kiểm tra db của bạn/schema.rb

Bạn có nhiều khả năng có cùng bảng được tạo ở đó ngoài việc di chuyển trong db/migrate/[timestamp] your_migration

Bạn có thể xóa db/migrate/[timestamp] your_migration nếu nó trùng lặp với tìm thấy trong lược đồ và nó sẽ hoạt động.

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

Pg là một đá quý Rails, đoạn mã cho phép liên lạc giữa Rails và PostgreSQL. Nó liên quan đến việc di trú của bạn vào các bảng SQL, do đó có lỗi liên quan. Vì vậy, những gì các lỗi được nói là:

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

giải pháp có thể:

  1. Tạo di cư có thể thả những, có lẽ cũ, bảng.
  2. Thay đổi tên của di chuyển.
  3. Đăng nhập vào PostgreSQL và thả bảng. Một cái gì đó như:

    $ psql -U username databasename 
    

    sau đó

    database_name=# drop table table-name; 
    

    Các lệnh chính xác có thể là một chút khác nhau mặc dù.

+0

Có, chúng tôi cũng có thể giải quyết vấn đề này theo cách này. –

+0

Lưu ý quan trọng: Di chuyển được thêm bằng đá quý ActiveRecord _not_ pg gem. –

Các vấn đề liên quan