web-dev-qa-db-fra.com

Postgres on Rails FATAL: la base de données n'existe pas

J'ai réinstallé Postgres (9.2.4) et je ne parviens pas à le configurer avec Rails 3.2.11. J'ai fait:

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

Alors maintenant j'ai

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

Mon fichier database.yml ressemble à

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

Et quand j’exécute rake db:create:all puis rake db:migrate j’obtiens l’erreur suivante:

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

J'ai essayé de nettoyer tout ce qui concerne la base de données, les migrations, etc. 

J'ai supprimé le fichier schema.rb, le fichier seed.rb et tous les fichiers du dossier de migration, ainsi que tout ce que je peux penser. Mais l'erreur concernant les "posts" me fait penser qu'il existe encore une ancienne référence à ma base de données antérieure (qui contenait une table appelée "posts").

Est-ce que quelqu'un sait comment résoudre cette erreur, en essayant de réinstaller/actualiser complètement ma base de données?

27
Tyler

J'avais un problème similaire… .. J'ai vérifié différents sites Web et essayé ce qu'ils avaient suggéré, mais cela n'a pas fonctionné… puis j'ai essayé ce que vous avez suggéré… ..rake db:create:alletrake db:migrateit a travaillé pour moi. Je vous remercie!

62
user3112576

Vous devez d'abord créer les bases de données. Exécutez rake db: create: all

Assurez-vous également que votre fichier yml est correctement configuré pour postgres.

4
user2329711

db:create:all et db:migrate n'ont pas fonctionné pour moi d'abord . J'ai changé le nom de ma base de données de development.pg à developmentpg dans le fichier myapp/config/database.yml:

base de données: db/developmentpg

et ensuiterake db:create:alletrake db:migrate, cela a fonctionné pour moi.

Je vous remercie

2
N. S.

J'ai essayé de lancer rake db: create: all, ce qui n'a pas fonctionné . bundle exec rake db: créer: tous travaillé pour moi.

J'espère que cela t'aides!

0
remi466