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