Как найти путь URL к локальной базе данных postgres?

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

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

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

или, как должен выглядеть URL, если моя база данных.yml выглядит так

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

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

2 ответов


формат кажется

postgres://username:password@host/database

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

postgres:///db/database-name

или

postgres:///db%2Fdatabase-name

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


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

#! script/rails runner

в первой строке вашего скрипта, а затем сделайте его исполняемым с:

chmod +x myscript

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

./myscript

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