sql >> Database >  >> RDS >> PostgreSQL

FATAL:rol root bestaat niet

U kunt verbinding maken met de Postgres-server met expliciete (my d.w.z. gebruikersnaam van het besturingssysteem) of impliciet (timonin d.w.z. rol in database.yml ) inloggen.

Zoals ik je database.yml zie heeft gebruikersnaam statement, maar alleen voor productie omgeving. Door rake-tests uit te voeren zonder de Rails-omgeving te specificeren, worden ze uitgevoerd tegen ontwikkeling omgeving standaard. Dat is de reden waarom je een fout hebt zoals FATAL: role "my" does not exist .

Dus afhankelijk van uw behoeften moet u deze verklaringen toevoegen aan de definities van alle databases (test en development ook):

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

Daarna zal uw Rails-toepassing verbinding maken als timonin gebruiker.

De volledige checklist is de volgende:

  • Rol maken

Hier is SQL voor PostgreSQL:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • Commentaar verwijderen of uitspraken toevoegen username: timonin en password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %> naar uw database.yml-bestand
  • Uitvoeren alle bewerkingen met TIMONIN_DATABASE_PASSWORD variabele:

Hier is het gewijzigde rake-commando:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

of:

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

voor testomgeving.



  1. Hoe voortschrijdend gemiddelde in roodverschuiving te berekenen

  2. Hoe ORA-29471 op dbms_sql.open_cursor op te lossen?

  3. Hoe schrijf je dit (left join, subquery ) in Laravel 5.1?

  4. MySQL-back-up met WHERE-voorwaarde