You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Progress — миграция 001_initial (историческая заметка)
Актуальное описание продукта и сценариев: ../docs/PROJECT_STATUS.md.
Progress - Шаг 2: Проектирование базы данных
Статус: ✅ ЗАВЕРШЕНО
Выполненные задачи:
-
✅ Создание SQL-миграции (
backend/src/db/migrations/001_initial.sql)- Созданы все таблицы:
departments(Подразделения)users(Пользователи)tests(Тесты)test_versions(Версии тестов)questions(Вопросы)answer_options(Варианты ответов)test_assignments(Назначения тестов)test_assignment_targets(Получатели назначений)test_attempts(Попытки прохождения)user_answers(Ответы пользователя)settings(Настройки)
- Созданы ENUM типы:
user_role,target_type,attempt_status - Созданы индексы для оптимизации запросов
- Добавлены начальные данные в таблицу
settings
- Созданы все таблицы:
-
✅ Создание скрипта миграции (
backend/src/db/migrate.js)- Поддержка выполнения SQL-миграций
- Отслеживание выполненных миграций в таблице
migrations - Транзакционное выполнение миграций
- Логирование процесса выполнения
-
✅ Создание db.js (
backend/src/db/db.js)- Подключение к PostgreSQL с использованием пула соединений
- Функции:
query(),transaction(),getClient() - Обработка ошибок пула
- Логирование запросов в режиме разработки
-
✅ Применение миграций к БД
- Миграция
001_initial.sqlуспешно выполнена - Все таблицы созданы в базе данных
clinic_tests
- Миграция
Созданные файлы:
backend/src/db/
├── migrations/
│ └── 001_initial.sql # SQL-миграция с созданием всех таблиц
├── migrate.js # Скрипт для выполнения миграций
└── db.js # Модуль подключения к PostgreSQL