Как найти путь 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. Тогда нет необходимости обращаться к базе данных вручную.