figbellСкачать

Функции

Таблицы, столбцы и связи записываются на простом языке; рядом в реальном времени рисуется ER-диаграмма, а каждое изменение на диаграмме записывается обратно в код. Tabliva показывает проблемы схемы, предлагает нормализацию и создаёт SQL и версионированный файл миграции, которые приводят базу данных к состоянию кода. PostgreSQL, MySQL / MariaDB и SQLite.

Основные функции

Понятный язык схем
Таблицы, логические типы, первичные и внешние ключи (->), индексы (частичные и по выражению), ограничения check и перечисления записываются в файлы .tabliva. Особенности диалекта добавляются аннотациями (@postgres(type: "jsonb")), представления, триггеры и функции — блоками sql как есть. В редакторе есть подсветка синтаксиса, автодополнение и поиск.
Двусторонняя ER-диаграмма
Диаграмма обновляется по мере ввода; при синтаксической ошибке остаётся последнее корректное состояние, а ошибка показывается с номером строки. Добавление, переименование и удаление таблиц, столбцов, связей и индексов или смена типа на диаграмме переписывают только нужную строку кода; комментарии сохраняются. Расположение хранится в отдельном файле (diagram.tabliva-layout.json).
Проблемы: 55 правил
Ключи, предложения недостающих внешних ключей с уровнем уверенности, типы (например, float для денежных сумм), индексы, повторяющиеся данные, именование, структура и совместимость с диалектом. У каждой проблемы есть простое объяснение и исправление; безопасные исправления применяются разом. Игнорирование проблемы и отключение правила записываются в файл kurallar.tabliva.
Нормализация
Функциональные зависимости задаются в коде строкой depends или предлагаются по именам столбцов. Для каждой таблицы показываются шаги от 1НФ до НФБК, исправления с предпросмотром «до / после» (перенести в другую таблицу, новая таблица, дочерняя таблица, намеренная копия) и SQL переноса данных для диалекта.
План изменений и файлы миграций
Код сравнивается с целью (папка миграций, снимок; в настольном приложении — рабочая база данных). Переименования распознаются; каждый шаг помечается рисками: потеря данных, перезапись таблицы, блокировка. SQL создаётся для PostgreSQL, MySQL / MariaDB и SQLite; файл миграции записывается в папку migrations/ с датой в имени, а его контрольная сумма добавляется в tabliva.sum.
Импорт существующей схемы
Читаются дампы SQL (pg_dump, mysqldump, SQLite .schema или написанный вручную CREATE TABLE), DBML и другой проект Tabliva; можно выбрать файл на каждую таблицу или один файл. Берётся только схема; строки INSERT и COPY пропускаются. В настольном приложении схему можно прочитать и прямо из базы данных.
Синхронизация
Источник и цель (код, снимок, папка миграций; в настольном приложении — база данных) сравниваются рядом или в одну колонку; направление можно поменять. Изменения, сделанные в базе без файла миграции, показываются как расхождение; скрипт синхронизации создаётся из выбранных изменений.
Документация
Словарь данных сохраняется в HTML (один файл, ничего не загружающий из сети), Markdown или через окно печати в PDF. Описания берутся из комментариев /// в коде; описание, написанное здесь, записывается обратно в код. ER-диаграмма экспортируется в PNG / SVG в светлой или тёмной теме, схема — в SQL или DBML.
Тестовые данные и история схемы
Создаются тестовые данные, соблюдающие типы, ограничения и связи; одно и то же зерно всегда даёт одни и те же данные (SQL, CSV или JSON). История схемы строится по файлам миграций и снимкам; любые два момента можно сравнить.
Рабочая база данных (настольное приложение)
Настольное приложение подключается к PostgreSQL и MySQL / MariaDB (с параметрами SSL): импорт схемы из базы, синхронизация, «Применить к базе данных» с подтверждением (согласие на потерю данных и ввод имени базы), загрузка тестовых данных и проверки данных для предложенных связей. В браузере и на телефоне эти функции не показываются.
Папка проекта и отправка
Проекты хранятся на этом устройстве; в браузерах, которые умеют записывать в папку, и в настольном приложении проект можно связать с папкой, и каждое изменение записывается туда (например, в репозиторий Git). Проекты экспортируются и импортируются в ZIP; файл, проект или SQL плана отправляются через функцию «Поделиться» устройства.
Пример проекта, резервная копия и работа без интернета
При первом запуске есть схема магазина с несколькими намеренно оставленными проблемами; «Снова добавить пример проекта» возвращает её. «Создать резервную копию…» сохраняет проекты и настройки в один файл (без связей с папками и паролей). Учётная запись не нужна; всё, кроме рабочей базы данных, работает без интернета.

Устройства и браузеры

  • На компьютере файлы проекта и цели находятся слева, код и диаграмма — посередине; представления (Редактор, Изменения, Проблемы, Нормализация, Синхронизация, Документация, Инструменты) выбираются на верхней панели. На телефоне и планшете в вертикальной ориентации в нижнем меню есть Код, Диаграмма, Проблемы, План и Ещё.
  • Функции рабочей базы данных (импорт из базы, база данных в синхронизации, «Применить к базе данных», загрузка тестовых данных, проверки данных) есть только в настольном приложении. В браузере и на телефоне записываются файлы миграций или SQL сохраняется и отправляется.
  • Прямая запись в папку доступна в Chrome, Edge и настольном приложении; в Safari, Firefox и на телефоне проекты хранятся на этом устройстве и переносятся в ZIP.
Снимок экрана Tabliva: рабочая область с примером содержимого
Компьютер
Снимок экрана Tabliva: рабочая область с примером содержимого
Планшет
Снимок экрана Tabliva: рабочая область с примером содержимого
Телефон

Сочетания клавиш

В macOS используются ⌘ и ⌥; в Windows и Linux — Ctrl и Alt.

СочетаниеДействие
1 – 7Представления
Ctrl/⌘ SСохранить
Ctrl/⌘ OПроекты
Ctrl/⌘ IИмпорт
Ctrl/⌘ ⇧ PПоказать план
Ctrl/⌘ FНайти в коде
Ctrl/⌘ Z · ⇧ ZОтменить · повторить
F2Переименовать таблицу (диаграмма)
← → ↑ ↓Переместить выбранную карточку
EnterОткрыть страницу таблицы
DeleteУдалить таблицу

На сенсорном экране диаграмма масштабируется и прокручивается двумя пальцами; чтобы нарисовать связь, нужно коснуться сначала исходного столбца, затем целевого. Долгое нажатие на карточку таблицы открывает контекстное меню; меню и диалоги открываются снизу.

Получить Tabliva

Попробуйте в браузере без установки; для постоянного использования купите версию для macOS, Windows или Linux.