20

Tôi đã cài đặt lại Postgres (9.2.4) và tôi gặp sự cố khi thiết lập lại với Rails 3.2.11. Tôi đã làm:Postgres on Rails FATAL: cơ sở dữ liệu không tồn tại

brew install postgresql 
initdb /usr/local/var/postgres 
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 

Vì vậy, bây giờ tôi có

$ psql --version 
psql (PostgreSQL) 9.2.4 
$ which psql 
/usr/local/bin/psql 

tập tin database.yml tôi trông như thế

development: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_development 
    pool: 5 
    username: Tyler 
    password: 
    host: localhost 
    port: 5432 

Và khi tôi chạy rake db:create:all sau đó rake db:migrate tôi nhận được lỗi:

PG::Error: ERROR: relation "posts" does not exist 
LINE 5:    WHERE a.attrelid = '"posts"'::regclass 
            ^
:   SELECT a.attname, format_type(a.atttypid, a.atttypmod), 
       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod 
      FROM pg_attribute a LEFT JOIN pg_attrdef d 
      ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
     WHERE a.attrelid = '"posts"'::regclass 
      AND a.attnum > 0 AND NOT a.attisdropped 
     ORDER BY a.attnum 

Tôi đã cố gắng xóa mọi thứ liên quan đến db quá khứ, di chuyển, v.v.

Tôi đã xóa schema.rb, seed.rb và tất cả các tệp trong thư mục di chuyển và bất kỳ điều gì khác mà tôi có thể nghĩ đến. Nhưng lỗi đề cập đến "bài viết" làm cho tôi nghĩ rằng vẫn còn một số tài liệu tham khảo cũ để cơ sở dữ liệu trước của tôi (trong đó có một bảng gọi là "bài viết").

Có ai biết cách khắc phục lỗi này không, khi cố gắng cài đặt lại/làm mới cơ sở dữ liệu của tôi hoàn toàn?

+0

Điều này có vẻ như tệp di chuyển của bạn không nhất quán. Bạn có chắc là bạn đang tạo 'bài viết' trước khi tham khảo nó? – iltempo

+0

Tôi đã thử chỉ đặt tệp di chuyển đầu tiên trong thư mục di chuyển (không tham chiếu bài đăng ở bất kỳ đâu) và tôi vẫn gặp sự cố. Tôi cũng đã thử xóa TẤT CẢ các tệp di chuyển và tôi vẫn nhận được thông báo ... – tyler

+0

Có 'rake db: drop: all' help? – iltempo

Trả lời

53

Tôi gặp sự cố tương tự. Tôi đã kiểm tra các trang web khác nhau và thử những gì họ đề xuất nhưng không hoạt động. Sau đó, tôi đã thử những gì bạn đề xuất. rake db:create:allrake db:migrate nó làm việc cho tôi. Cảm ơn bạn!

+0

làm việc như quyến rũ !!Đã thất vọng với nó: D cảm ơn dude, – userRandom

+2

điều này đã không làm việc cho tôi cho đến khi tôi adde bó exec. 'bundle exec rake db: create: all'. Cảm ơn! – acrogenesis

3

Trước tiên, bạn cần phải tạo cơ sở dữ liệu. Chạy rake db: create: all

Cũng đảm bảo tệp yml của bạn được thiết lập chính xác cho postgres.

2

db:create:alldb:migrate không hoạt động trước cho tôi. tôi đã thay đổi tên cơ sở dữ liệu của tôi development.pg-developmentpg trong myapp/config/database.yml file:

database: db/developmentpg

và sau đó rake db:create:allrake db:migrate, nó làm việc cho tôi.

Cảm ơn bạn

0

Tôi đã thử chạy rake db: create: all, không hoạt động. Tuy nhiên, chạy gói exec rake db: create: all làm việc cho tôi.

Hy vọng điều này sẽ hữu ích!

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