4.2 KiB
4.2 KiB
Правило — Формирование проекта PostgreSQL БД
Структура проекта
projects/pg/{project_name}/
readme.md
settings/
connection.json
{schema}/
tables/
functions/
scripts/
init/
{schema}.psql
deploy/
_docs/
diagrams/
openapi.yaml
architecture.md
Правила
1. Схема = модуль
Каждая схема PostgreSQL — это отдельная папка-модуль в корне проекта.
2. Таблицы
- Путь:
{schema}/tables/ - Формат:
.psql - Одна таблица = один файл
- Именование:
{table_name}.psql(напримерuser.psql,cabinet.psql) - Содержимое:
CREATE TABLEс комментариями
3. Функции
- Путь:
{schema}/functions/{function_name}/ - Каждая функция — отдельная папка
- Внутри: файл
.psqlс телом функции - Именование папки: по имени функции (например
user_select_by_ids/)
4. Скрипты
- Путь:
{schema}/scripts/ - SQL-скрипты (миграции, seed-данные, утилиты)
- Именование миграций:
YYYY-MM-DD_description.sql
5. Init
- Путь:
{schema}/init/ - Скрипты инициализации: создание схемы, расширений, начальных данных
- Выполняются один раз при первом развёртывании
6. Deploy
- Путь:
deploy/(в корне проекта) - Инфраструктура развёртывания: docker-compose, bat-файлы, shell-скрипты
- НЕ SQL-миграции
7. Главный файл модуля
- Путь:
{schema}/{schema}.psql - Точка входа — подключает все таблицы и функции модуля
- Порядок: сначала таблицы, потом функции
8. Post-deploy
- Путь:
{schema}/{schema}.post-deploy.psql - Скрипты, выполняемые после деплоя (seed-данные, обновление зависимостей)
9. Диаграммы
- Путь:
_docs/diagrams/ - Формат: Mermaid
.mdфайлы - Обязательные диаграммы:
er-diagram.md— ER-диаграмма всех таблиц схемы (связи, типы, ключи)
- Правила формирования:
- Каждая таблица — блок
erDiagramс перечислением полей и типов - Связи между таблицами отображаются через
||--o{,|--|{и т.д. - Внешние ключи помечаются комментариями
- LEGACY-таблицы помечаются
%% LEGACYв комментарии - Имена таблиц:
schema.table(напримерauth.user) - Типы данных: PostgreSQL → Mermaid (serial→int, text→string, timestamptz→datetime, boolean→bool, integer[]→int[])
- Каждая таблица — блок
Пример: проект kit_auth_pg
projects/pg/kit_auth_pg/
readme.md
settings/
connection.json
auth/
tables/
user.psql
cabinet.psql
user_cabinet.psql
functions/
user_select_by_ids/
user_select_by_ids.psql
user_create/
user_create.psql
scripts/
seed_roles.sql
2026-07-08_user-select-by-ids.sql
init/
create_schema.psql
auth.psql
auth.post-deploy.psql
deploy/
docker-compose.yml
up.bat
down.bat
restart.bat
init.sh
_docs/
diagrams/
openapi.yaml
architecture.md
Настройки подключения
Файл: settings/connection.json
{
"host": "localhost",
"port": 5432,
"database": "{database_name}",
"username": "postgres",
"password": ""
}
Инструменты
apply-psql.sh— применить SQL к БДup.bat/down.bat— запуск/остановка контейнераdocker-compose.yml— конфигурация контейнераexport.bat/import.bat— экспорт/импорт дампа