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

Шаг 1 — предметная область

Здесь описывается, про что будет практика и какие темы SQL она отрабатывает. Из этого генерируется учебная база: описание для студента, DDL и документация таблиц.

Тема занятия, выбор предметной области, темы практики с квотами «от–до».
шаг 1Тема занятия, выбор предметной области, темы практики с квотами «от–до».

Что заполнять

Тема занятия. Название вида «JOIN и агрегатные функции — лекция 4». Попадает в промт: по нему модель понимает, под какое занятие собирать базу.

Про что будет база данных. Готовые варианты или свой: достаточно перечислить сущности и связи — «автосервис: клиенты, машины, заказы на ремонт, запчасти, механики». Остальное генератор придумает сам.

Темы практики. Каталог тем SQL, сгруппированный по разделам. У каждой отмеченной темы указывается, сколько заданий должно её закрывать — диапазон «от–до». Одно задание может закрывать несколько тем. Своя тема добавляется полем внизу.

Сколько всего заданий. Тоже диапазон. Он проверяется отдельно от тем: сумма минимумов по темам не должна превышать верхнюю границу — иначе задания не сойдутся, и студия скажет об этом на шаге 2.

Дополнительные пожелания. Свободный текст в промт: объём данных, что должно быть в данных обязательно, чего не должно быть. Пример из пака-примера: «shops 6–8 строк, часть is_active = false; без JOIN и агрегатов — первая лекция».

Что происходит при генерации

Модель отдаёт описание, DDL и документацию таблиц

Описание пишется для студента: что за база и что в ней лежит, без имён колонок.

Схема накатывается на живой Postgres

Эфемерный контейнер, накат migrations/common. Синтаксическая ошибка или несуществующий тип всплывают здесь, а не у студента.

Схема снимается интроспекцией

Таблицы, колонки, типы, ограничения. Этот снимок дальше используется автодополнением в редакторе студента.

Результат виден на той же странице: описание для студента, DDL с подсветкой, таблица выбранных тем с квотами.

Утверждение

Кнопка «Утвердить область» фиксирует content_hash области в state.json. С этого момента:

  • задания генерируются к этой версии области;
  • изменение области после утверждения помечает задания устаревшими — студия покажет причину и предложит пересоздать;
  • документация таблиц (table_docs) в хэш не входит: тексты для студента можно править, ничего не ломая.
Пересоздание области обнуляет практику

Задания привязаны к области хэшем, материализации привязаны к заданиям. Правка DDL после того, как собраны решения и проверки, означает переделку шагов 2 и 3. Пожелания к данным лучше довести до утверждения.