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

FATAL:rollerod findes ikke

Du kan oprette forbindelse til Postgres-serveren med eksplicit (my OS brugernavn) eller implicit (timonin dvs. rolle i database.yml ) login.

Som jeg ser din database.yml har et brugernavn, men kun til produktion miljø. At køre rake-test uden at angive Rails-miljøet vil køre dem mod udvikling miljø som standard. Det er derfor, du har fejl som FATAL: role "my" does not exist .

Så afhængigt af dine behov skal du tilføje disse udsagn til alle databasers definitioner (test og development også):

  username: timonin
  password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %>

Derefter vil din Rails-applikation oprette forbindelse som timonin bruger.

Den fulde tjekliste er følgende:

  • Opret rolle

Her er SQL til PostgreSQL:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • Fjern kommentarer eller tilføj udsagn username: timonin og password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %> til din database.yml-fil
  • Kør alle operationer med TIMONIN_DATABASE_PASSWORD variabel:

Her er ændret rake kommando:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

eller:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword' RAILS_ENV=test

til testmiljø.



  1. ORA-00932:inkonsistente datatyper:forventet - fik CLOB

  2. Hold øje med en tabel nye poster i sql database

  3. Har brug for hjælp igen til at deltage i borde

  4. Gnistfejl - Decimalpræcision 39 overstiger maks. præcision 38