Базы данных
PostgreSQL, MySQL и MariaDB в Joppa: отдельная база для каждого проекта, расширения (pgvector, PostGIS…), URL подключения, TablePlus, импорт и экспорт, копии и снимки.
Joppa запускает один сервер на движок на фиксированном порту; у каждого проекта на нём своя база данных. Это легче, чем контейнер на каждый проект, и ваши инструменты всегда подключаются к одному и тому же месту.
PostgreSQL, MySQL и MariaDB входят в бесплатную версию, по одному серверу каждого. Несколько серверов одного движка (например, два PostgreSQL разных версий) требуют Joppa Pro. См. Лицензия и тарифы.
Создание базы данных
На странице сервиса, в разделе Базы данных: + Новая база данных. Задайте ей имя, выберите проект для подключения и, для PostgreSQL, её расширения.
Обычно даже этого делать не нужно: подключение сервиса к проекту на вкладке Сервисы создаёт базу проекта, если её ещё нет.
Таблица баз данных показывает их размер, расширения и проект. Меню каждой базы: Расширения…, Копировать URL, Экспортировать…, Импортировать в эту базу…, Дублировать…, Снимки…, Очистить…, Удалить….
Очистка базы данных
Очистить… в меню базы стирает всё её содержимое (таблицы, представления, процедуры, данные), включая открытые соединения, но сохраняет саму базу. Joppa удаляет её и создаёт заново с тем же именем, с её расширениями PostgreSQL или с кодировкой и правилом сортировки MySQL и MariaDB. Проектам, которые её используют, ничего менять не нужно: достаточно снова запустить миграции.
Подключение
| Движок | URL |
|---|---|
| PostgreSQL | postgresql://postgres:[email protected]:5432/<база> |
| MySQL, MariaDB | mysql://root:[email protected]:3306/<база> |
Это учётные данные для разработки, на сервере, который слушает только ваш компьютер.
TablePlus
Открыть в TablePlus (на сервисе или на базе) открывает подключение, уже названное «Joppa · база» и отмеченное зелёным как локальное окружение.
Из терминала
joppa dbs postgres # базы данных и их URL
joppa dbs postgres --json # для скрипта
Расширения PostgreSQL
Установленные на сервере
Некоторым расширениям нужны файлы на сервере. Выберите их в Версия, порт и расширения…: при следующем запуске Joppa соберёт локальный образ PostgreSQL с ними (в первый раз — несколько минут). Существующие базы данных сохраняются.
| Расширение | Назначение |
|---|---|
pgvector (vector) |
Эмбеддинги и поиск по сходству |
| PostGIS | Географические данные |
| pgRouting | Построение маршрутов (вместе с PostGIS) |
| HypoPG | Гипотетические индексы |
| pg_partman | Секционирование |
| pg_stat_statements | Статистика запросов (предзагружено) |
Всегда доступны
pg_trgm, uuid-ossp, pgcrypto, citext, hstore, unaccent, fuzzystrmatch.
Для отдельной базы
Расширения… на базе данных включает или убирает их. Если снять флажок с расширения, оно удаляется из базы вместе со всем, что от него зависит (столбцы vector, геометрии…).
2. Включить в новых базах данных выбирает расширения, которые отмечены заранее при создании базы и присутствуют в базах, созданных внешним инструментом (миграцией, createdb). Расширение, установленное на шаге 1 (pgvector…), тоже появляется здесь: установка делает его доступным, а включение здесь создаёт его в каждой новой базе.
MySQL и MariaDB
MySQL — это официальный образ (версии LTS и innovation), MariaDB — его форк от сообщества, совместимый с теми же клиентами. Оба по умолчанию используют порт 3306: если запущены оба, второй получает 3307.
Экспорт базы данных
Экспортировать… в меню базы сохраняет её в файл, в выбранное место:
| Формат | Содержимое |
|---|---|
.sql.gz (предлагается) |
SQL, сжатый gzip |
.sql |
Читаемый SQL |
.dump (PostgreSQL) |
Архив pg_dump -Fc, читается pg_restore |
В файле нет ни владельцев, ни прав (pg_dump --no-owner --no-acl), ни CREATE DATABASE (mysqldump --single-transaction --routines --triggers --events): его можно загрузить под любым именем, здесь или в другом месте.
Импорт файла
Импортировать… над таблицей баз данных загружает файл на сервер. Импортировать в эту базу… в меню базы делает то же самое, но в эту базу. Joppa читает:

- файл
.sqlили.sql.gzиз PostgreSQL, MySQL или MariaDB; - архив
.dumpPostgreSQL (pg_dump -Fc); - экспорт целого сервера: из Экспортировать базы данных (.sql)…,
pg_dumpallилиmysqldump --all-databases.
Прежде чем что-либо запускать, Joppa читает файл и показывает:
- базу, в которую он попадёт, — она названа по файлу (
acme-2026-10-23.sql.gzдаётacme), имя можно изменить. Если такая база уже есть, отметьте Заменить acme или возьмите предложенное имя (Импортировать как acme_import); - для экспорта целого сервера — базы, которые он создаёт, и те, что уже существуют и будут заменены: отметьте Заменить эти базы;
- расширения PostgreSQL из файла: доступно, сначала включите его на сервере (в Версия, порт и расширения…) или Joppa его не предлагает. То, что зависит от отсутствующего расширения, не загружается.
Во время импорта полоса показывает, сколько файла уже прочитано. В конце Joppa кратко перечисляет ошибки, пропущенные по ходу (неизвестная роль, отсутствующее расширение). Если восстановление не удалось, показывается сообщение клиента (psql, pg_restore, mysql), а база, созданная импортом, удаляется.
Joppa адаптирует файл по мере чтения: убирает OWNER TO и DEFINER=, которые ссылаются на учётные записи другого сервера, заменяет сопоставления utf8mb4_0900_* из MySQL 8 на utf8mb4_unicode_ci для MariaDB, а в экспорте целого сервера пропускает системные базы (mysql, sys…) и учётную запись Joppa.
Дублирование базы данных
Дублировать… создаёт копию на том же сервере, с её таблицами, данными и расширениями (по умолчанию acme_copy). PostgreSQL копирует файлы базы (CREATE DATABASE … TEMPLATE), когда к ней никто не подключён, а иначе делает экспорт и восстановление; MySQL и MariaDB всегда используют экспорт.
Снимки
С Joppa Pro пункт Снимки… в меню базы открывает её снимки: копии базы, которые хранит Joppa и которые восстанавливаются в один клик.

- Сделать снимок — при желании с именем («перед миграцией»).
- Восстановить… возвращает базу к этому снимку. Её текущее содержимое сначала сохраняется в новый снимок «Перед восстановлением».
- Корзина удаляет снимок.
- Хранить на базу: сверх этого числа (по умолчанию 10) самые старые снимки удаляются.
Автоматические снимки
С Joppa Pro Joppa делает снимок перед каждой операцией, которая стирает данные. Если снимок не удался, операция не выполняется.
| Операция | Метка снимка |
|---|---|
| Удаление базы | Перед удалением |
| Очистка базы | Перед очисткой |
| Импорт файла, заменяющего базу | Перед импортом |
| Импорт из Docker Compose с заменой базы | Перед импортом из Compose |
| Восстановление снимка | Перед восстановлением |
Снимки удалённой базы сохраняются: они показаны под таблицей, в разделе Удалённые базы данных, и восстановление одного из них заново создаёт базу.
Снимки лежат в папке snapshots/ Joppa (см. Файлы): по одному .dump (PostgreSQL) или .sql.gz (MySQL, MariaDB) на снимок, с описывающим его .json. Без Joppa Pro список остаётся видимым и снимки можно удалять, но не создавать и не восстанавливать.
Из терминала
joppa db export postgres acme # ./acme-2026-10-23.sql.gz
joppa db export postgres acme ~/acme.dump # архив PostgreSQL
joppa db import postgres ~/acme.sql.gz --into acme_test
joppa db import postgres ~/acme.sql.gz --replace # заменяет acme
joppa db clone postgres acme acme_feature
joppa db snapshot postgres acme --name "перед миграцией"
joppa db snapshots postgres acme
joppa db restore postgres acme 20261023-142501
См. Команда joppa.
Экспорт баз данных
Экспортировать базы данных (.sql)… в меню ⋯ сервера PostgreSQL, MySQL или MariaDB сохраняет все его базы в один SQL-файл (pg_dumpall или mysqldump --all-databases), в выбранное место. Остановленный сервер запускается на время экспорта, а затем снова останавливается.
Экспорт доступен и для сервера, заблокированного бесплатной версией (см. Лицензия и тарифы): ваши данные остаются вашими. Чтобы загрузить такой файл обратно на сервер: Импорт файла.