PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Il ruolo non esiste e non è possibile creare database quando si utilizza PostgreSQL

Aggiungi un nome utente al tuo database.yml , potrebbe anche utilizzare il nome della tua applicazione (o qualche variante del nome) come nome utente, userò app_name come segnaposto:

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

Quindi crea l'utente (AKA "ruolo") all'interno di PostgreSQL usando psql.exe :

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

La prima riga è nel tuo terminale, le due successive sono all'interno di psql . Quindi esegui il tuo rake db:create .

L'User user è probabilmente un valore predefinito ma user è già preso per altri scopi in PostgreSQL, quindi dovresti citarlo per preservare il caso se volessi usare User come nome utente:

postgres=# create role "User" login createdb;

È comunque meglio creare un utente per applicazione.

Ti consigliamo di fare cose simili per il tuo test voce in database.yml anche.