PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ФАТАЛНО:коренът на ролята не съществува

Можете да се свържете към сървъра на Postgres с изричен (my т.е. потребителско име на ОС) или имплицитно (timonin т.е. роля в database.yml ) влизане.

Както виждам вашия database.yml има изявление за потребителско име, но само за производство околен свят. Извършването на рейк тестове без да се указва среда на Rails ще ги изпълни срещу development среда по подразбиране. Ето защо имате грешка като FATAL:ролята "my" не съществува .

Така че в зависимост от нуждите ви трябва да добавите тези изрази към дефинициите на всички бази данни (test и разработка както и):

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

След това вашето Rails приложение ще се свърже като timonin потребител.

Пълният контролен списък е следният:

  • Създайте роля

Ето SQL за PostgreSQL:

CREATE ROLE timonin LOGIN PASSWORD 'Pas$_sword'
  NOINHERIT CREATEDB
   VALID UNTIL 'infinity';
COMMENT ON ROLE timonin
  IS 'Timonin database role for Rails app';
  • Разкоментирайте или добавете твърдения потребителско име:timonin и парола:<%=ENV['TIMONIN_DATABASE_PASSWORD'] %> към вашия файл database.yml
  • Бягай всички операции с TIMONIN_DATABASE_PASSWORD променлива:

Ето променената команда за рейк:

rake db:create TIMONIN_DATABASE_PASSWORD='Pas$_sword'

или:

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

за тестова среда.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Alter Column Integer на Boolean

  2. Стойности на Postgres ORDER BY в IN списък с помощта на Rails Active Record

  3. Инсталиране на PDO-драйвери за PostgreSQL на Mac (с помощта на Zend за eclipse)

  4. Защо Postgresql се проваля с Geokit като този?

  5. Грешка при използване на съвпадение на шаблон, което не е като всички в PostgreSQL