2016-07-08 6 views
4

Ich versuche, die Datenbank in Rails zu erstellen. In postgres sehe ich die Entwicklungs- und Testdatenbank, bekomme aber einen Berechtigungsfehler. Ich habe versucht, diesem Link zu folgen, hat nicht für mich gearbeitet.PG :: InsufficientPrivilege: FEHLER: Berechtigung verweigert für Relation schema_migrations Rake db: create

Fehler: PG::InsufficientPrivilege: ERROR: permission denied for relation schema_migrations : SELECT "schema_migrations".* FROM "schema_migrations"

Rails: permission denied for relation schema_migrations

default: &default 
    adapter: postgresql 
    encoding: unicode 
    pool: 5 
    host: localhost 
    username: root 
    password: 

development: 
    <<: *default 
    database: svp-chicago_development 

ich log in Postgres und tat diese Befehle.

psql postgres 
CREATE USER root 
CREATE DATABASE svp-chicago_development 
GRANT ALL PRIVILEGES ON DATABASE svp-chicago_development to root 
ALTER DATABASE svp-chicago_development OWNER TO root 

Wenn ich \list sehe ich die Datenbank vorhanden ist.

+0

Könnte eine Passwort-Sache sein; Versuchen Sie, den Benutzer 'root' mit einem Passwort zu erstellen, und fügen Sie ihn in die Datei' config/database.yml' ein. –

Antwort

5

Ich denke, Sie vermisst erstellen password für Ihre user. Versuchen Passwort zu erstellen, wie folgend:

CREATE USER root WITH PASSWORD 'your_new_password'; 
CREATE DATABASE svp-chicago_development; 
GRANT ALL PRIVILEGES ON DATABASE svp-chicago_development to root; 
ALTER DATABASE svp-chicago_development OWNER TO root; 
+1

Ich tat dies und meine Postgres gibt diesen Fehler weiter. Könnten Sie bitte einen Blick auf [link] werfen (http://stackoverflow.com/questions/41424654/postgres-permission-denied-for-relation-schema-migrations) –

6

ich gleiches Problem hatte und ich durch den Zusatz „Superuser“ auf die Rolle gelöst.

Listen Sie zuerst die Benutzer und ihre Berechtigungen auf. Wenn Sie die obigen Befehle befolgt haben, hat root user dose nicht die Attribute "Superuser".

postgres=# \du 
            List of roles 
Role name |       Attributes       | Member of 
-----------+------------------------------------------------------------+----------- 
other  | Superuser, Create role, Create DB, Replication, Bypass RLS | {} 
root  |               | {} 

Als nächstes Upgrade Root als "Superuser".

postgres=# ALTER USER root WITH SUPERUSER; 
ALTER ROLE 

Listen Sie erneut die Benutzer und ihre Berechtigungen auf. Jetzt hat root "Superuser".

postgres=# \du 
           List of roles 
Role name |       Attributes       | Member of 
-----------+------------------------------------------------------------+----------- 
other  | Superuser, Create role, Create DB, Replication, Bypass RLS | {} 
root  | Superuser             | {} 

Hoffe es hilft.

+0

Dies half mein Problem zu lösen. Vielen Dank. – iamse7en

Verwandte Themen