PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

FATAL:root roli nie istnieje

Możesz połączyć się z serwerem Postgres za pomocą jawnego (my tj. nazwa użytkownika systemu operacyjnego) lub niejawna (timonin czyli rola w database.yml ) zaloguj się.

Jak widzę twój database.yml ma oświadczenie o nazwie użytkownika, ale tylko do produkcji środowisko. Uruchamianie testów rake bez określania środowiska Rails spowoduje ich uruchomienie w programowaniu środowiska domyślnie. Dlatego masz błąd, taki jak FATAL: role "my" does not exist .

Więc w zależności od potrzeb musisz dodać te instrukcje do definicji wszystkich baz danych (test i development również):

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

Następnie aplikacja Railsowa połączy się jako timonin użytkownika.

Pełna lista kontrolna jest następująca:

  • Utwórz rolę

Oto SQL dla PostgreSQL:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • Odkomentuj lub dodaj stwierdzenia username: timonin i password: <%= ENV['TIMONIN_DATABASE_PASSWORD'] %> do pliku database.yml
  • Uruchom wszystkie operacje z TIMONIN_DATABASE_PASSWORD zmienna:

Oto zmieniona komenda prowizji:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

lub:

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

dla środowiska testowego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spłaszczanie kolumny Postgres zagnieżdżonej JSONB

  2. Obsługa stronicowania ze zmieniającymi się porządkami sortowania

  3. Szczegółowe informacje na temat dostawców chmury:PostgreSQL na AWS Aurora

  4. Railsy zmieniają typ kolumny i aktualizują wartości kolumn

  5. Docelowy czas przywracania Pgbackrest