ProjectDB: почему приложение подключается не к той базе
Какие настройки подключения ProjectDB читает первыми и почему изменение пароля иногда ничего не меняет.
- КаталогЗадаёт контекст запуска
- КонфигурацияОпределяет подключение
- База данныхПринимает запросы
Вы поменяли подключение, перезапустили ProjectDB, а приложение снова открыло прежнюю базу. Прежде чем менять пароль ещё раз, посмотрите, откуда оно берёт настройки. Локальный файл может иметь приоритет над удалённой конфигурацией. На выбор также влияют имя приложения и папка, из которой его запускают.
Имя приложения, каталог и пользователь
Запишите имя приложения, рабочий каталог и пользователя операционной системы. Именованный файл db.PDB-SERVER.json относится к конкретному приложению. Файл db.json используется как общий локальный вариант. Такой файл может объяснить, почему параметры удалённой конфигурации не дают ожидаемого результата.
{
"user": "app_user",
"pass": "REPLACE_WITH_DATABASE_PASSWORD",
"host": "127.0.0.1",
"port": 5780,
"db": "projectdb_training",
"schema": "api_pdb",
"min_connect": 1,
"max_connect": 10,
"channel": 1,
"ssl": false
}В примере показана структура настроек. Адрес, имя базы и данные доступа нужно указать свои. Значение ssl выбирайте по требованиям вашего соединения. Не размещайте конфигурацию в публичном каталоге сайта и не коммитьте заполненный файл с паролем в репозиторий.
Не смешиваем два пароля
Пароль сервера конфигурации и пароль PostgreSQL решают разные задачи. Вариант запуска с --host и --password описывает удалённую конфигурацию ProjectDB. Он не превращает указанный --password в пароль пользователя базы. Перед изменением реквизитов определите, на каком именно шаге возникает ошибка.
Как узнать, какая база подключена
Запустите приложение с явно выбранным каталогом, посмотрите его журнал и подтвердите целевую базу на стороне PostgreSQL. Изменяйте один источник настроек за раз. Перед удалением локального файла сохраните защищённую копию и поймите, какой источник начнёт использоваться следующим.
Если приложений несколько, заведите небольшую таблицу: имя, рабочая папка, способ запуска и база. Пароли туда не записывайте. По такой таблице проще заметить перепутанное подключение и исправить его без повторной установки ProjectDB.
