199 lines
7.5 KiB
Markdown
199 lines
7.5 KiB
Markdown
# ТЗ — Формирование проекта для БД
|
||
|
||
## Общее описание
|
||
|
||
На основании файловой структуры (см. architecture.md) формируется проект для конкретной базы данных. Каждый проект — автономная единица с собственными настройками, исходниками и документацией.
|
||
|
||
---
|
||
|
||
## Шаблон структуры
|
||
|
||
```
|
||
Kit.Db/
|
||
│
|
||
├── rules/ # Правила для LLM по движкам
|
||
│ ├── common/ # Общие правила для всех СУБД
|
||
│ │ └── ...
|
||
│ ├── pg/ # Правила PostgreSQL
|
||
│ │ └── db-project-rule.md
|
||
│ └── sqlite/ # Правила SQLite
|
||
│ └── db-project-rule.md
|
||
│
|
||
├── skills/ # LLM промпты (описания таблиц, функций)
|
||
│ └── ...
|
||
│
|
||
└── projects/ # Проекты БД
|
||
│
|
||
├── pg/ # ── PostgreSQL проекты ──
|
||
│ │
|
||
│ └── kit_auth_pg/ # Проект: БД авторизации
|
||
│ │
|
||
│ ├── readme.md # Описание БД
|
||
│ │
|
||
│ ├── settings/ # Настройки подключения
|
||
│ │ └── connection.json
|
||
│ │
|
||
│ ├── auth/ # Модуль: авторизация
|
||
│ │ ├── tables/ # DDL таблиц
|
||
│ │ │ ├── user.psql
|
||
│ │ │ ├── cabinet.psql
|
||
│ │ │ └── user_cabinet.psql
|
||
│ │ │
|
||
│ │ ├── functions/ # SQL функции
|
||
│ │ │ ├── user_select_by_ids/
|
||
│ │ │ │ └── user_select_by_ids.psql
|
||
│ │ │ └── user_create/
|
||
│ │ │ └── user_create.psql
|
||
│ │ │
|
||
│ │ ├── scripts/ # Произвольные скрипты
|
||
│ │ │ └── seed_roles.sql
|
||
│ │ │
|
||
│ │ ├── init/ # Инициализация
|
||
│ │ │ └── create_schema.psql
|
||
│ │ │
|
||
│ │ ├── deploy/ # Миграции
|
||
│ │ │ ├── 2026-07-08_user-select-by-ids.sql
|
||
│ │ │ └── 2026-07-09-user-seed-merge.sql
|
||
│ │ │
|
||
│ │ ├── auth.psql # Точка входа модуля
|
||
│ │ └── auth.post-deploy.psql
|
||
│ │
|
||
│ └── _docs/ # Документация проекта
|
||
│ ├── diagrams/
|
||
│ ├── openapi.yaml
|
||
│ └── architecture.md
|
||
│
|
||
└── sl3/ # ── SQLite проекты ──
|
||
│
|
||
└── kit_example_sl3/ # Проект: пример
|
||
│
|
||
├── readme.md
|
||
├── settings/
|
||
│ └── connection.json
|
||
│
|
||
├── main/ # Модуль: основной
|
||
│ ├── tables/
|
||
│ ├── scripts/
|
||
│ ├── init/
|
||
│ ├── deploy/
|
||
│ └── main.sql
|
||
│
|
||
└── _docs/
|
||
├── diagrams/
|
||
├── openapi.yaml
|
||
└── architecture.md
|
||
```
|
||
|
||
---
|
||
|
||
## Структура проекта
|
||
|
||
Каждый проект БД создаётся по пути:
|
||
|
||
```
|
||
projects/{engine}/{project_name}/
|
||
```
|
||
|
||
Где:
|
||
|
||
- `{engine}` — тип СУБД (pg, sqlite, mysql, mssql и т.д.)
|
||
- `{project_name}` — имя проекта в формате `имя_БД_движок` (например `kit_auth_pg`)
|
||
|
||
---
|
||
|
||
## Обязательные компоненты проекта
|
||
|
||
### 1. readme.md
|
||
|
||
Описание проекта:
|
||
|
||
- Назначение БД
|
||
- Движок и версия
|
||
- Краткое описание модулей
|
||
- Связи с другими БД (если есть)
|
||
|
||
### 2. settings/
|
||
|
||
Папка с настройками подключения:
|
||
|
||
- `connection.json` — параметры подключения к БД (хост, порт, БД, пользователь)
|
||
|
||
Пример `connection.json`:
|
||
|
||
```json
|
||
{
|
||
"host": "localhost",
|
||
"port": 5432,
|
||
"database": "kit_auth",
|
||
"username": "postgres",
|
||
"password": ""
|
||
}
|
||
```
|
||
|
||
### 3. Модули (auth/, payments/, и т.д.)
|
||
|
||
Каждый модуль содержит:
|
||
|
||
- `tables/` — DDL-скрипты таблиц
|
||
- `functions/` — SQL-функции и хранимые процедуры
|
||
- `scripts/` — SQL-скрипты (миграции, seed-данные, утилиты)
|
||
- `init/` — скрипты инициализации (создание схемы, начальные данные)
|
||
- `deploy/` — инфраструктура развёртывания (docker-compose, bat, sh)
|
||
- `{module}.psql` — главный файл модуля (точка входа)
|
||
|
||
### 4. _docs/
|
||
|
||
Документация проекта:
|
||
|
||
- `diagrams/` — диаграммы (ER, зависимости, потоки)
|
||
- `openapi.yaml` — OpenAPI спецификация (если БД предоставляет API)
|
||
- `architecture.md` — описание архитектуры конкретной БД
|
||
|
||
---
|
||
|
||
## Правила именования
|
||
|
||
- Папки — в нижнем регистре, через подчёркивание: `kit_auth_pg`
|
||
- SQL-файлы — в нижнем регистре: `create_users_table.sql`
|
||
- Функции — по шаблону: `{module}_{action}.sql` (например `auth_get_user_by_id.sql`)
|
||
- Таблицы — по шаблону: `{module}_{entity}.sql` (например `auth_users.sql`)
|
||
|
||
---
|
||
|
||
## Правила (rules/)
|
||
|
||
При формировании проекта LLM использует правила из:
|
||
|
||
- `rules/common/` — общие правила для всех СУБД
|
||
- `rules/{engine}/` — правила для конкретного движка
|
||
|
||
Правила определяют:
|
||
|
||
- Стиль написания SQL
|
||
- Шаблоны описания таблиц и функций
|
||
- Формат комментариев
|
||
- Стандарты именования
|
||
|
||
---
|
||
|
||
## Skills
|
||
|
||
При формировании проекта LLM использует промпты из `skills/` для:
|
||
|
||
- Генерации описаний таблиц
|
||
- Генерации описаний функций
|
||
- Формирования документации
|
||
- Создания диаграмм
|
||
|
||
---
|
||
|
||
## Порядок создания проекта
|
||
|
||
1. Создать папку проекта `projects/{engine}/{project_name}/`
|
||
2. Создать `readme.md` с описанием
|
||
3. Создать `settings/connection.json`
|
||
4. Для каждого модуля БД создать папку модуля с подпапками (tables, functions, scripts, init, deploy)
|
||
5. Создать `_docs/` с диаграммами и спецификацией
|
||
6. Заполнить SQL-файлы на основании требований
|
||
7. Проверить структуру на соответствие шаблону
|