3.1 KiB
3.1 KiB
Правило — Формирование проекта SQLite БД
Структура проекта
projects/sl3/{project_name}/
readme.md
settings/
connection.json
{module}/
tables/
scripts/
init/
{module}.sql
deploy/
_docs/
diagrams/
openapi.yaml
architecture.md
Правила
1. Модуль
Каждый функциональный модуль — отдельная папка в корне проекта.
SQLite не поддерживает схемы, поэтому модуль = логическая группа объектов.
2. Таблицы
- Путь:
{module}/tables/ - Формат:
.sql - Одна таблица = один файл
- Именование:
{table_name}.sql(напримерusers.sql,sessions.sql) - Содержимое:
CREATE TABLEс комментариями
3. Скрипты
- Путь:
{module}/scripts/ - Произвольные SQL-скрипты (запросы, утилиты, seed-данные)
- SQLite не поддерживает хранимые процедуры — вся логика в скриптах
4. Init
- Путь:
{module}/init/ - Скрипты инициализации: создание таблиц, индексов, начальных данных
- Выполняются один раз при первом развёртывании
5. Deploy
- Путь:
deploy/(в корне проекта) - Инфраструктура развёртывания: docker-compose, bat-файлы, shell-скрипты
- НЕ SQL-миграции
6. Главный файл модуля
- Путь:
{module}/{module}.sql - Точка входа — подключает все таблицы и скрипты модуля
- Порядок: сначала таблицы, потом скрипты
Особенности SQLite
- Нет хранимых функций и процедур — папка
functions/не используется - Нет схем — все объекты в одном пространстве имён
- Один файл БД = один проект
- Типы данных ограничены: INTEGER, TEXT, REAL, BLOB, NUMERIC
PRAGMAнастройки размещаются вinit/
Пример: проект kit_example_sl3
projects/sl3/kit_example_sl3/
readme.md
settings/
connection.json
main/
tables/
users.sql
sessions.sql
roles.sql
scripts/
seed_roles.sql
2026-07-08_add-email-column.sql
init/
create_indexes.sql
set_pragmas.sql
main.sql
deploy/
docker-compose.yml
up.bat
down.bat
_docs/
diagrams/
openapi.yaml
architecture.md
Настройки подключения
Файл: settings/connection.json
{
"database": "{database_name}.db",
"journal_mode": "WAL",
"foreign_keys": true
}
Инструменты
sqlite3 {database}.db < {script}.sql— выполнить скрипт.dump— экспорт всей БД.read— выполнить файл SQL