"FATAL: роль" root "не существует" при запуске rake db: schema: load - PullRequest
0 голосов
/ 21 февраля 2019

Я закончил разработку небольшого приложения и попытался запустить его в производство.Я скопировал приложение в новую папку, создал новую базу данных psql с новым пользователем, настроил мой файл database.yml и попытался запустить rake db: schema: load, чтобы привести мою базу данных в нужное состояние.Rake может подключиться к моей базе данных, так как первые шаги выполнены, но после них он прерывается следующим сообщением.Насколько Google говорит мне, это должно быть проблемой с пользователем.Однако, так как rake может выполнить первые шаги, я сомневаюсь, что у меня есть проблема с ним.

[root@l1vmgt08 web_qip_parser_v2]# rake db:schema:load    
-- enable_extension("plpgsql")
   -> 0.0171s
-- create_table("qip_changes", {:force=>:cascade})
   -> 0.0919s
-- create_table("users", {:force=>:cascade})
   -> 0.0989s
-- add_foreign_key("qip_changes", "users")
   -> 0.0042s
-- enable_extension("plpgsql")
rake aborted!
ActiveRecord::NoDatabaseError: FATAL:  role "root" does not exist

config / database.yml:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: my_db_name
  username: my_user_name
  password: my_password
  host: localhost
  port: 5432

test:
  <<: *default
  database: my_db_name

production:
  <<: *default
  database: my_db_name
  username: my_user_name
  password: my_password
  host: localhost
  port: 5432

Psql вывод моего Dev иновый пользователь Prod для сравнения привилегий:

postgres=# \l
                                                 List of databases
          Name          |       Owner       | Encoding |   Collate   |    Ctype    |       Access privileges        
------------------------+-------------------+----------+-------------+-------------+--------------------------------
my_dev_user_name        | postgres          | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres                  +
                        |                   |          |             |             | postgres=CTc/postgres         +
                        |                   |          |             |             | my_dev_db_name=CTc/postgres
 my_user_name           | postgres          | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres                  +
                        |                   |          |             |             | postgres=CTc/postgres         +
                        |                   |          |             |             | my_db_name=CTc/postgres

, поэтому мне кажется, что я пытаюсь подключиться через сокет UNIX, используя локального пользователя.Я нашел несколько статей, описывающих эту проблему.Это должно быть исправлено, когда я подключаюсь через TCP / IP, просто добавив «host: localhost» в мой файл database.yml.Тем не менее, это именно то, что я сделал, поэтому я не знаю, как действовать

здесь, мой pg_hba.conf:

 # TYPE  DATABASE        USER            ADDRESS                 METHOD
 local   all             all                                     peer
 host    all         all         127.0.0.1/32          md5

есть еще одно приложение, работающее на сервере, которое работает.Он имеет тот же конфигурационный файл database.yml, что и я.

1 Ответ

0 голосов
/ 21 февраля 2019

Возможно, это произошло из-за отсутствия оператора username для тестовой среды.Пожалуйста, смотрите этот вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...