Конфигурация базы данных с database.yml
объединяется с ENV["DATABASE_URL"]
.Но ENV["DATABASE_URL"]
ВСЕГДА имеет приоритет над конфигурацией YML.См. Руководства Rails по настройке .
Плохая новость заключается в том, что вы установили ENV["DATABASE_URL"]
для указания на производственную базу данных, которая могла бы привести к катастрофическим последствиям.
Хорошоновость заключается в том, что у вас, похоже, есть белый список IP-адресов в рабочей БД, который запрещает ваш локальный IP.В противном случае вы бы забили свою производственную базу данных!
Чтобы это исправить, вам нужно определить, где находится ENV["DATABASE_URL"]
, и избавиться от нее.В зависимости от вашей настройки это может быть где угодно от ~/.profile
до конфигурации контейнера докера.Затем подтвердите, что у вас есть правильная конфигурация:
$ rails runner -e test "puts ActiveRecord::Base.connection_config"
Это должно напечатать что-то вроде:
{"adapter"=>"postgresql", "encoding"=>"unicode", "pool"=>5, "database"=>"xxxxxx-test"}
На данный момент безопасно создавать базы данных для dev / test с помощью:
$ rails db:create
$ rails db:schema:load
Вы можете использовать ENV["DATABASE_URL"]
, чтобы позволить разработчикам использовать их собственную локальную конфигурацию, но вы должны НИКОГДА не позволять указывать на производственную БД на чем-либо, кроме реального производственного сервера!