web-dev-qa-db-ger.com

Postgres on Rails FATAL: Datenbank existiert nicht

Ich habe Postgres (9.2.4) neu installiert und habe Probleme, es mit Rails 3.2.11 wiederherzustellen. Ich tat:

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

So jetzt habe ich

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

Meine database.yml-Datei sieht folgendermaßen aus

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

Und wenn ich rake db:create:all dann rake db:migrate starte, erhalte ich die Fehlermeldung:

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

Ich habe versucht, alles zu löschen, was sich auf vergangene Datenbanken, Migrationen usw. bezieht. 

Ich habe die schema.rb, die seed.rb und alle Dateien im Migrationsordner gelöscht und alles, was mir sonst noch einfällt. Der Fehler bei "posts" lässt mich jedoch vermuten, dass es immer noch einen alten Verweis auf meine frühere Datenbank gibt (die eine Tabelle namens "posts" hatte).

Kann jemand diesen Fehler beheben, wenn ich meine Datenbank vollständig neu installieren/aktualisieren möchte?

27
Tyler

Ich hatte ein ähnliches Problem ... Ich habe verschiedene Websites überprüft und ausprobiert, was sie vorgeschlagen haben, aber nicht funktioniert haben. Dann habe ich versucht, was Sie vorschlugen .rake db:create:allundrake db:migratearbeitete für mich Vielen Dank!

62
user3112576

Sie müssen zuerst die Datenbanken erstellen. Führen Sie rake db: create: all aus

Stellen Sie außerdem sicher, dass Ihre Yml-Datei für Postgres korrekt eingerichtet ist.

4
user2329711

db:create:all und db:migrate funktionierten zuerst nicht für mich ..__ Ich änderte meinen Datenbanknamen von development.pg in developmentpg in myapp/config/database.yml-Datei:

datenbank: db/developmentpg

und dannrake db:create:allundrake db:migrate, hat es für mich funktioniert.

Vielen Dank

2
N. S.

Ich habe versucht, rake db: create: all auszuführen, was nicht funktioniert hat. Bündel Exec Rake db: create: all arbeitete für mich.

Hoffe das hilft!

0
remi466