PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rolle ist nicht vorhanden und kann bei Verwendung von PostgreSQL keine Datenbank erstellen

Fügen Sie Ihrer database.yml einen Benutzernamen hinzu , könnte genauso gut den Namen Ihrer Anwendung (oder eine Variante des Namens) als Benutzernamen verwenden, ich werde app_name verwenden als Platzhalter:

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

Erstellen Sie dann den Benutzer (auch bekannt als "Rolle") in PostgreSQL mit psql.exe :

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

Die erste Zeile befindet sich in Ihrem Terminal, die nächsten beiden befinden sich in psql . Dann machen Sie Ihren rake db:create .

Der User user ist möglicherweise ein Standardwert, aber user wird in PostgreSQL bereits für andere Zwecke verwendet, daher müssten Sie es zitieren, um die Groß-/Kleinschreibung beizubehalten, wenn Sie User verwenden möchten als Benutzername:

postgres=# create role "User" login createdb;

Es ist sowieso besser, einen Benutzer pro Anwendung zu erstellen.

Sie werden ähnliche Dinge für Ihren test tun wollen Eintrag in database.yml auch.