Подключение PostgreSQL в CapRover
Как поднять PostgreSQL в CapRover, не потерять данные и подключить приложение через DATABASE_URL.
Подключение PostgreSQL в CapRover
Заметка. Главный принцип: приложение и база должны жить отдельно. Приложение обновляется через новый deploy, а база хранит данные в persistent volume.
Что должно быть готово
- рабочий сервер с CapRover
- домен и HTTPS для приложения уже настроены или готовы к настройке
- понимание, какое приложение будет использовать базу
- доступ в CapRover Dashboard
Шаг 1. Создай отдельное приложение PostgreSQL
Подними базу отдельным app или через one-click app. Важный момент: для PostgreSQL нужно включить Persistent Data.
Важно. Не запускай PostgreSQL внутри контейнера самого сайта. При повторном deploy это создаёт риск потерять данные или смешать роли приложения и базы.
Шаг 2. Зафиксируй ключевые параметры
Тебе понадобятся:
- имя пользователя базы
- пароль
- имя базы
- внутренний адрес сервиса в сети CapRover
- порт PostgreSQL
Обычно строка подключения выглядит так:
bash
postgresql://USER:PASSWORD@SERVICE_NAME:5432/DB_NAME?schema=publicШаг 3. Пропиши DATABASE_URL в приложении
В приложении открой переменные окружения и добавь:
bash
DATABASE_URL=postgresql://USER:PASSWORD@SERVICE_NAME:5432/DB_NAME?schema=publicЕсли приложение использует Prisma, именно эта переменная будет основной точкой подключения.
Шаг 4. Проверь миграции и старт приложения
После добавления DATABASE_URL приложение должно:
- увидеть базу
- применить миграции или
db push - подняться без ошибок подключения
Если используется Prisma, базовый рабочий сценарий такой:
bash
npx prisma generate
npx prisma db push
node prisma/seed.jsШаг 5. Проверь, что данные не живут в контейнере приложения
Убедись, что:
- persistent storage включён только у базы
- приложение не пишет важные данные в локальную файловую систему контейнера
- резервные копии продуманы отдельно
Что должно получиться
После настройки:
- приложение стартует без ошибок подключения
- таблицы создаются
- seed проходит
- новый deploy приложения не затрагивает данные PostgreSQL
Задание. После первого успешного подключения сразу запиши себе: имя app базы, DATABASE_URL, способ восстановления и место хранения резервных копий. Эти четыре вещи чаще всего нужны в самый неподходящий момент.
Следующий урок
Резервное копирование сервера и базы
Что бэкапить, как часто и какие данные критично не потерять в рабочем проекте.