Перейти к основному содержимому

Работа в панели

Бета-версия

Базы данных — в бета-версии: всё, что здесь описано, работает, но интерфейс и отдельные возможности ещё меняются. Подробнее — на странице «Базы данных».

С базой работают на её странице в панели: Базы данных в меню слева → карточка базы. Меню слева сменится на меню базы, а над ним появится переключатель — через него удобно прыгать между базами организации, не возвращаясь в список.

Разделы меню базы:

ГруппаРазделы
—Обзор, Мониторинг, Настройки
БазаТаблицы, SQL-редактор, Функции, Роли, Политики, Расширения, Резервные копии
СервисыAPI, Аутентификация, Файлы — это Data API

Список баз​

На странице Базы данных — все базы организации карточками. На карточке:

  • имя и цена: «входит в тариф» у общей базы, «N ₽/мес» у выделенной;
  • мощность: «Shared CPU» у общей базы или ядра и память у выделенной;
  • место: сколько занято из квоты, полосой;
  • проекты, которым выдана база, и кнопка «Подключить проект».

Меню «⋮» на карточке: открыть базу, взять строку подключения, изменить имя, удалить.

Состояние базы видно прямо на карточке:

Что на карточкеЧто происходит
«Готовим базу» / «Поднимаем инстанс» и шагибаза создаётся. Список обновляется сам, F5 не нужен
«не поднялся» и причинасоздать не вышло, деньги не списаны или уже возвращены. В меню — «Заказать ещё раз» и «Убрать из списка»
«Перезапускается»меняется конфигурация, обычно около полуминуты
«Переезжает» и шагибаза переезжает на выделенный инстанс
«платёж не прошёл»продлить не вышло, база работает до названной даты. Кнопка «Оплатить»
«доступ закрыт»база остановлена за неоплату, названа дата удаления. Кнопка «Оплатить»
«удалена за неоплату»базы нет. Если перед удалением копию удалось снять, её можно скачать в настройках

Что стоит за строками про оплату — на странице «Тарификация».

Обзор​

Паспорт базы:

  • тип — версия PostgreSQL;
  • конфигурация — «Shared CPU · 0,5 ГБ» или ядра, память и диск;
  • место — занято из квоты. Цифра желтеет от 75 % и краснеет от 90 %;
  • копии — когда была последняя.

Ниже — графики места и записи за сутки, состояние сервисов (API, аутентификация, файлы) и блок Подключённые проекты.

Подключённые проекты​

Здесь видно, каким проектам выдана база и под каким именем приезжает переменная. Подключить проект можно и из списка баз, и со страницы проекта: Проект → База данных → Подключить к базе.

Что получает подключённый проект:

  • переменную LAYERO_DATABASE_URL со строкой подключения. Если проект подключён ко второй базе — LAYERO_DATABASE_URL_<СЛАГ>;
  • собственную роль в базе с правами владельца: она создаёт и меняет таблицы.

Переменная появится у приложения со следующего деплоя. Вашу переменную DATABASE_URL платформа не трогает. Подробнее о правах роли проекта — «Что может приложение».

Отключение проекта удаляет его роль. Таблицы и данные остаются.

Мониторинг​

Графики за час, сутки или неделю обновляются каждые 30 секунд:

ГрафикЧто показывает
Местосколько занято. Пунктир — квота: когда место кончится, запись остановится, а чтение продолжит работать
Подключениясколько открыто сейчас. Пунктир — предел, от 80 % график желтеет
Запись в секундукоммиты
Изменения строквставки, обновления и удаления
Отменённые транзакцииоткаты: всплеск обычно значит ошибку в приложении
Временные файлызапросы, которым не хватило памяти на сортировку
Чтения из памятидоля чтений из кэша. Ниже 80 % — повод смотреть на запросы или конфигурацию
Взаимные блокировкидедлоки

Под графиками — блок Место базы: занято, квота и пять самых больших таблиц.

Таблицы​

Состав базы по схемам: слева список таблиц с поиском, справа выбранная таблица. Вкладки таблицы:

  • Структура — колонки, типы, обязательность, значения по умолчанию, ключи;
  • Данные — сами строки, подгружаются по мере прокрутки.

Переключатель Диаграмма показывает те же таблицы картинкой — карточки и связи между ними. Вид записан в адресе страницы: ссылку можно переслать коллеге.

Раздел только для чтения: строки здесь не правятся. Создавать и менять таблицы — в SQL-редакторе, миграциями приложения или через Data API.

SQL-редактор​

Запросы выполняются прямо в панели.

Закладки и история. Слева две вкладки. В закладках три готовых запроса («Таблицы и размеры», «Долгие запросы», «Активные запросы») и ваши сохранённые. Сохранённый запрос виден всем в организации. История — последние 30 запросов, она хранится только в этом браузере.

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

РольЧто происходит
Владелецзапрос выполняется по-настоящему, с правами владельца базы
Аноним, Авторизованный, Серверпроба глазами посетителя Data API: запрос выполняется и откатывается, кнопка называется «Проверить»

Проба удобна, чтобы проверить политики доступа до того, как их увидит посетитель сайта.

Защита от случайностей. Перед запросом, который удаляет таблицы или меняет их структуру, и перед UPDATE или DELETE без WHERE редактор переспросит. Отменить такой запрос можно только восстановлением из резервной копии.

Границы. Несколько операторов выполняются одной транзакцией. Запрос длиннее 30 секунд Postgres отменяет сам, в ответе — первые 500 строк. Всё это — на странице «Лимиты».

Функции​

Код внутри базы, который вызывают по имени из SQL или через Data API. В списке видны аргументы функции, тип результата и то, выполняется ли она с правами владельца.

  • Добавить функцию — новая функция создаётся в схеме api, язык plpgsql или sql. Галочка «Выполнять с правами владельца базы» делает её SECURITY DEFINER.
  • Пробный вызов — выполнить с аргументами и посмотреть результат. Изменения откатываются.
  • История версий — каждое изменение сохраняется, прежнюю версию можно вернуть кнопкой «Восстановить эту версию».

Роли​

Кто подключается к базе и с какими правами. У роли проекта стоит его метка, у владельца — «владелец», у временной роли — дата, до которой она живёт.

Добавить роль:

  1. Задайте название.
  2. При желании — дату в поле «Действует до». Без даты роль бессрочная. Удобно, когда доступ нужен аналитику или подрядчику на неделю.
  3. Выпишите права строками «команда — схема — таблица». По умолчанию — SELECT на всё. Звёздочка в таблице действует и на таблицы, которые появятся позже.
  4. Сохраните пароль — он показывается один раз.

В меню роли — «Сбросить пароль» и «Удалить роль». Роль владельца удалить нельзя.

Политики​

Политики RLS решают, какие строки таблицы вернёт запрос. У каждой таблицы — переключатель RLS и кнопка «Создать политику».

В окне новой политики выбирают таблицу, команду, роли, на которые политика действует, и тип — «Разрешающая» или «Ограничивающая». Условия USING и WITH CHECK можно написать вручную или взять заготовку: «Все строки», «Только свои», «Только авторизованные». Внизу окна виден SQL, который выполнится.

⚠️ Включённый RLS без единой политики закрывает таблицу для всех ролей, кроме владельца. Панель показывает такие таблицы отдельно.

Роль проекта работает от имени владельца, и RLS на неё не действует. Если приложение опирается на политики, подключайтесь отдельной ролью — см. «Что может приложение».

Расширения​

Список расширений с переключателями: включать их через SQL не обязательно. Видны версия, схема, в которую встало расширение, и что оно даёт. Выключение выполняет DROP EXTENSION.

Переключателем включаются pgcrypto, uuid-ossp, citext, pg_trgm, unaccent, btree_gin и pgvector. Запертый переключатель объясняет причину: включить расширение можно только через поддержку или сначала нужно другое расширение. Список приходит с сервера: если расширения в нём нет — его нет и на сервере.

Резервные копии​

Копии, расписание, восстановление и скачивание дампа — на отдельной странице «Резервные копии».

Настройки​

Имя базы. Видно только в панели. Слаг в строке подключения при переименовании не меняется, приложения ничего не заметят.

Разрешённые адреса. Кто может подключаться к базе снаружи — с ноутбука, из CI, с чужого хостинга. Приложения ваших проектов на Layero подключаются всегда, их в список добавлять не нужно.

  • Общая база после создания пускает снаружи только адрес, с которого её завели: панель скажет об этом во всплывающем сообщении. Выделенная база после создания открыта всем (0.0.0.0/0), см. «Кого пускать к базе».
  • Добавить → адрес или подсеть. Есть быстрые варианты: «Мой адрес» и «Весь интернет» (0.0.0.0/0). Для второго панель переспросит.
  • У правила можно указать, зачем оно, и срок в поле «Действует до».
  • Изменения начинают действовать в течение минуты.

Заблокированные адреса. После серии неверных паролей адрес блокируется автоматически, чтобы перебор не доходил до базы. Этот раздел появляется, только когда кто-то заблокирован. Блокировка снимается сама, а свой адрес можно разблокировать кнопкой, если пароль уже исправлен.

Удалить базу — в самом низу, см. ниже.

Смена конфигурации​

У выделенной базы ядра, память и диск меняются в меню «⋮» на обзоре → Изменить конфигурацию. Вкладки те же, что при создании: «Стандартная» и «Произвольная».

  • Смена ядер или памяти перезапускает базу, обычно на полминуты. Окно пишет об этом до подтверждения: «перезапуск около 30 с» или «без перерыва».
  • Диск только растёт, уменьшить его нельзя.
  • Общую базу то же окно переносит на выделенный инстанс. Вернуть её на прежнее место можно в течение суток.

Как пересчитываются деньги при смене — на странице «Тарификация».

Удаление базы​

Меню «⋮» на карточке или на обзоре → Удалить базу, либо Настройки → Удалить базу. Панель попросит набрать имя базы для подтверждения.

⚠️ Удаление необратимо: данные, роли и все резервные копии исчезают сразу. Если копия нужна — сначала скачайте её в разделе «Резервные копии».

У выделенной базы окно удаления на странице базы показывает, сколько вернём за неиспользованные дни. Как считается возврат — на странице «Тарификация».