Как найти URL-адрес в локальной базе данных postgres?

У меня есть приложение Rails, работающее в базе данных postgres. Я настраиваю очередь фоновых задач в базе данных, и мне нужно указать URL-адрес базы данных.

Различные перестановки, которые я пробовал, и ожидали бы все return FATAL: database "database-name" does not exist.

Есть ли команда, которая будет печатать этот URL?

Или, как выглядит URL-адрес, если моя database.yml выглядит так

development:
    adapter: postgresql
    encoding: unicode
    database: db/database-name

Спасибо за предложения.

Ответ 1

Формат выглядит как

postgres://username:[email protected]/database

У вас есть / в имени вашей базы данных и (по-видимому) postgres будет принимать / в именах баз данных, поэтому вам нужно использовать

postgres:///db/database-name

или

postgres:///db%2Fdatabase-name

Не стесняйтесь вынимать db/ часть имени вашей базы данных - это только гарантируется для баз данных, таких как SQLite, которые хранят db в локальном файле и нуждаются в имени файла.

Ответ 2

Не знаете, как вы пытаетесь получить доступ к базе данных, но если вы пытаетесь создать script, который использует ту же базу данных, что и рельсы, но запускается отдельно, подумайте об использовании script, который работает в рельсах. В unix/linux, если вы добавите эту строку:

#! script/rails runner

в первую строку вашего script, а затем сделать его исполняемым с помощью:

chmod +x myscript

то вы можете просто запустить его с помощью

./myscript

и он может использовать ваши классы моделей так же, как ваш контроллер и просматривать код в рельсах. Тогда нет необходимости обращаться к базе данных вручную.