Сервисы

Базы данных

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 читает:

Импорт файла: база acme уже существует, Joppa спрашивает, прежде чем её заменить

  • файл .sql или .sql.gz из PostgreSQL, MySQL или MariaDB;
  • архив .dump PostgreSQL (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 и которые восстанавливаются в один клик.

Снимки базы acme: один именованный, один сделанный перед импортом, и сколько снимков хранится на базу

  • Сделать снимок — при желании с именем («перед миграцией»).
  • Восстановить… возвращает базу к этому снимку. Её текущее содержимое сначала сохраняется в новый снимок «Перед восстановлением».
  • Корзина удаляет снимок.
  • Хранить на базу: сверх этого числа (по умолчанию 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), в выбранное место. Остановленный сервер запускается на время экспорта, а затем снова останавливается.

Экспорт доступен и для сервера, заблокированного бесплатной версией (см. Лицензия и тарифы): ваши данные остаются вашими. Чтобы загрузить такой файл обратно на сервер: Импорт файла.

getjoppa.com › support

Загрузка

Не отправляется? Напишите на [email protected]. Просто вопрос: [email protected].