PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Le rôle n'existe pas et impossible de créer une base de données lors de l'utilisation de PostgreSQL

Ajoutez un nom d'utilisateur à votre database.yml , autant utiliser le nom de votre application (ou une variante du nom) comme nom d'utilisateur, j'utiliserai app_name comme espace réservé :

development:
  adapter: postgresql
  encoding: utf8
  database: app_development
  pool: 5
  username: app_name
  password:

Créez ensuite l'utilisateur (alias "rôle") dans PostgreSQL en utilisant psql.exe :

$ psql -d postgres
postgres=# create role app_name login createdb;
postgres=# \q

La première ligne est dans votre terminal, les deux suivantes sont à l'intérieur de psql . Ensuite, faites votre rake db:create .

L'User user est peut-être une valeur par défaut mais user est déjà utilisé à d'autres fins dans PostgreSQL, vous devrez donc le citer pour préserver la casse si vous vouliez utiliser User comme nom d'utilisateur :

postgres=# create role "User" login createdb;

De toute façon, vous feriez mieux de créer un utilisateur par application.

Vous voudrez faire des choses similaires pour votre test entrée dans database.yml aussi.