Я закончил разработку небольшого приложения и попытался запустить его в производство.Я скопировал приложение в новую папку, создал новую базу данных 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, что и я.