Документация / Разработка и деплой
Базы данных и volumes
Постоянное хранилище, шаблоны баз и строки подключения.
Шаблоны баз данных
Добавьте PostgreSQL, Redis, MySQL или MongoDB из шаблона. Шаблоны задают образ, постоянную папку и переменные подключения. Держите базу во внутренней сети и передавайте строку подключения приложению через ссылку.
Для сервиса с именем postgres переменная приложения выглядит так:
DATABASE_URL=${{postgres.DATABASE_URL}}
Строка подключения является секретом. Не помещайте её в браузерный код или публичный файл. Шаблоны запускают контейнеры на текущем хосте, без отдельного реплицированного кластера и автоматического переключения на запасную базу.
Постоянные volumes
Volume сохраняет файлы при замене контейнера. Укажите точный путь, куда приложение пишет постоянные данные. Файлы в других папках остаются временными. Подключение пустого volume не переносит данные со старого хостинга.
Для SQLite и пользовательских загрузок используйте отдельную постоянную папку. Проверьте права и сохранность новых данных после деплоя. Удаление volume удаляет данные, поэтому сначала нужна проверенная резервная копия.
Бэкапы настраиваются отдельно
Volume не является внешней резервной копией. Подключите R2 и проверьте покрытие бэкапами. Для поддерживаемого PostgreSQL используется логический дамп. Для остальных volumes сохраняется файловый архив. Архив работающего MySQL, MongoDB, Redis или активно изменяемой SQLite не гарантирует согласованное восстановление. Нужна подходящая процедура самой базы или остановка записи перед финальной копией.
Внешние базы и копии окружений
При переносе приложения можно оставить внешний провайдер базы, например Supabase. Upferry не начинает автоматически копировать базу только потому, что её URL указан в переменных. Настройте резервные копии у этого провайдера.
Копирование окружения создаёт пустые volumes без производственных данных. Внешние URL базы, записанные строкой, копируются без изменений. Замените их до того, как staging начнёт писать в production.