Бази даних
База даних — це контейнер у демоні баз даних зі згенерованими обліковими даними. Ваш застосунок звертається до неї приватною мережею платформи; ви — через SQL-консоль.
Створення бази даних#
Відкрийте вкладку «Бази даних» проєкту, натисніть «+ Додати базу даних», виберіть назву та СУБД — postgres або mysql — і натисніть «Створити».
Пароль показується один раз — у вікні «Базу даних створено». Скопіюйте його одразу: платформа зберігає його в зашифрованому вигляді й більше не показує (застосунок отримує його як змінну).
curl -fsS -X POST "$BASE/api/v1/projects/$PID/databases" \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"engine":"postgres","name":"main"}'
create_database(project=7, name="main", engine="postgres")
Відповідь містить облікові дані та image, у якому працює база даних. Пароль є лише в цій відповіді.
| PostgreSQL | MySQL | |
|---|---|---|
| Образ для нової бази даних | postgres:17-alpine |
mysql:8.4 |
| Перевірка стану | pg_isready |
mysqladmin ping |
| Формат дампа | pg_dump -Fc (.pgdump) |
mysqldump --single-transaction --routines --triggers (.sql.gz) |
Назви: спочатку літера, далі малі літери, цифри та дефіси. Консоль приймає 2–21 символ (API дозволяє підкреслення і до 40 символів).
База даних зберігає образ, з якого її створено
Кожна база даних зберігає свій образ назавжди. База Postgres 16 лишається на 16 — каталог даних версії 16 не запуститься під 17 — зокрема й коли її перестворюють для відновлення. Перехід на новішу основну версію — це дамп і відновлення в нову базу даних. Образ показується в консолі поруч зі СУБД.
Де живе база даних#
Бази даних працюють у демоні баз даних, а не у вашому демоні застосунків. Типово це єдиний спільний демон db; адміністратор може виділити користувачеві окремий демон db-<alias>. У будь-якому разі кожна база даних — це власний контейнер із власним томом (dbdata-<slug>-<name>), портом (20000–29999) та обліковими даними, доступний лише у внутрішній мережі платформи — публічного порту бази даних немає.
Підключення застосунку#
Вкажіть базу даних у platform.yaml, і платформа додасть п'ять змінних, у яких ім'я записане великими літерами:
databases: [main]
| Змінна | Приклад |
|---|---|
DB_MAIN_HOST |
172.28.0.10 |
DB_MAIN_PORT |
20000 |
DB_MAIN_USER |
згенероване |
DB_MAIN_PASSWORD |
згенероване, у консолі ніколи не показується |
DB_MAIN_NAME |
назва бази даних |
import pg from "pg";
const pool = new pg.Pool({
host: process.env.DB_MAIN_HOST, port: +process.env.DB_MAIN_PORT,
user: process.env.DB_MAIN_USER, password: process.env.DB_MAIN_PASSWORD,
database: process.env.DB_MAIN_NAME,
});
import os, psycopg
conn = psycopg.connect(
host=os.environ["DB_MAIN_HOST"], port=os.environ["DB_MAIN_PORT"],
user=os.environ["DB_MAIN_USER"], password=os.environ["DB_MAIN_PASSWORD"],
dbname=os.environ["DB_MAIN_NAME"],
)
$dsn = sprintf("pgsql:host=%s;port=%s;dbname=%s",
getenv("DB_MAIN_HOST"), getenv("DB_MAIN_PORT"), getenv("DB_MAIN_NAME"));
$pdo = new PDO($dsn, getenv("DB_MAIN_USER"), getenv("DB_MAIN_PASSWORD"));
Порядок має значення
Змінні додаються лише для баз даних, які існують на момент розгортання чи перестворення застосунку. Спершу створіть базу даних, а потім розгорніть застосунок — або після цього натисніть «Перестворити» на вкладці «Застосунок». Віддавайте перевагу назвам баз даних без дефісів: назва на кшталт my-db дає DB_MY-DB_HOST, яку оболонка не може прочитати.
SQL-консоль#
Натисніть «SQL-консоль» у рядку бази даних. Вона виконує один оператор від імені користувача бази даних проєкту й показує результат у вигляді таблиці.
Обмеження, однакові в консолі та в MCP-інструменті run_query:
| Обмеження | Значення |
|---|---|
| Операторів за виклик | один |
| Тайм-аут | типово 30 с (statement_timeout / max_execution_time) |
| Розмір результату | обрізається на 1 000 рядків або 1 МіБ і позначається як обрізаний |
| Аудит | кожне виконання записується в журнал запитів із користувачем, SQL, статусом, кількістю рядків і тривалістю |
Для роботи зі схемою користуйтеся міграціями
Консоль призначена для перегляду й швидких виправлень. Запускайте зміни схеми з міграційного інструмента вашого застосунку під час старту, щоб відновлена чи нова база даних завжди була узгодженою.
Дампи#
«Створити дамп» (або dump_database) записує стиснутий логічний дамп у MinIO і виводить його в списку «Останні дампи» з розміром і sha256. Дамп виконується в тимчасовому контейнері, створеному з власного образу бази даних, тому версія інструмента завжди збігається з версією сервера. Дампи підпорядковуються політиці зберігання резервних копій — див. Резервні копії та відновлення.
Видалення бази даних#
«Видалити» прибирає контейнер і його том. Дампи, уже збережені в MinIO, — єдиний шлях назад, тому спершу створіть дамп.

