Конфигурационный хост Rails Postgres ошибочно принимает имя базы данных - PullRequest
0 голосов
/ 11 декабря 2018

потянул меня за волосы из-за этой проблемы:

Когда я запускаю приложение rails на моем Mac, кажется, что host ошибочно принимается за database name, и это происходит только в среде разработки.

Это мой database.yml:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  username: <%= ENV['DATABASE_USERNAME'] || 'admin' %>
  password: <%= ENV['DATABASE_PASSWORD'] || 'password'%>
  host: <%= ENV['DATABASE_URL'] || 'localhost'%>

development:
  <<: *default
  database: cid_dev

test:
  <<: *default
  database: cid_test

production:
  <<: *default
  database: cid_api

Затем, когда я запускаю:

$ bundle exec rake db:create

Мне возвращается следующее:

Database 'localhost' already exists

у кого-нибудь естьИдея, что происходит в моей местной среде?К вашему сведению, я пробовал rbenv и rvm, и они имеют одну и ту же проблему.

Спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

Я нашел ответ сам.

Rails, используя переменную окружения DATABASE_URL в качестве места для размещения строки подключения.Поэтому, когда я помещаю хост базы данных в переменную env DATABASE_URL, он будет использовать его по умолчанию

https://github.com/rails/rails/blob/fb764ba63e53b728873075a0d207b993409798a2/railties/lib/rails/application/configuration.rb#L88-L102

Так что, чтобы исправить это, мне нужно переименовать DATABASE_URL в DATABASE_HOST, чтов любом случае правильный.Спасибо

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