Разбить database.js на миграции + подключение #57

Closed
opened 2026-06-17 19:39:37 +00:00 by NW · 1 comment
Owner

Проблема

src/config/database.js — 284 строки. Смешивает подключение к БД и миграции схемы.

Решение

  • src/config/database.js (~30 строк) — подключение, экспорт db
  • src/migrations/001_initial_schema.js — CREATE TABLE
  • src/migrations/002_add_columns.js — ALTER TABLE
  • src/migrations/003_add_indexes.js — CREATE INDEX
  • src/migrations/runner.js — запуск миграций по порядку
  • Whitelist имён таблиц для PRAGMA
  • Хранить версию схемы в meta-таблице

Приоритет: ВЫСОКИЙ

## Проблема `src/config/database.js` — 284 строки. Смешивает подключение к БД и миграции схемы. ## Решение - [ ] `src/config/database.js` (~30 строк) — подключение, экспорт db - [ ] `src/migrations/001_initial_schema.js` — CREATE TABLE - [ ] `src/migrations/002_add_columns.js` — ALTER TABLE - [ ] `src/migrations/003_add_indexes.js` — CREATE INDEX - [ ] `src/migrations/runner.js` — запуск миграций по порядку - [ ] Whitelist имён таблиц для PRAGMA - [ ] Хранить версию схемы в meta-таблице ## Приоритет: ВЫСОКИЙ
NW added this to the Phase 2: Architecture & Refactoring milestone 2026-06-17 19:39:37 +00:00
NW added the priority::hightype::refactorphase::2 labels 2026-06-17 19:39:37 +00:00
Author
Owner

Реализовано

  • src/config/database.js (42 строки) — подключение, экспорт db, PRAGMA, SIGINT
  • src/migrations/001_initial_schema.js (92 строки) — 7 CREATE TABLE в транзакции
  • src/migrations/002_add_columns.js (33 строки) — 5 ALTER TABLE с проверкой колонок
  • src/migrations/003_add_indexes.js (9 строк) — 6 CREATE INDEX
  • src/migrations/runner.js (56 строк) — запуск миграций по порядку, _meta таблица для версионности
  • ALLOWED_TABLES whitelist сохранён в runner.js
  • Schema version отслеживается в _meta таблице (idempotent re-runs)

Коммит: 4b8144a

## ✅ Реализовано - [x] `src/config/database.js` (42 строки) — подключение, экспорт db, PRAGMA, SIGINT - [x] `src/migrations/001_initial_schema.js` (92 строки) — 7 CREATE TABLE в транзакции - [x] `src/migrations/002_add_columns.js` (33 строки) — 5 ALTER TABLE с проверкой колонок - [x] `src/migrations/003_add_indexes.js` (9 строк) — 6 CREATE INDEX - [x] `src/migrations/runner.js` (56 строк) — запуск миграций по порядку, _meta таблица для версионности - [x] ALLOWED_TABLES whitelist сохранён в runner.js - [x] Schema version отслеживается в _meta таблице (idempotent re-runs) **Коммит**: 4b8144a
NW closed this issue 2026-06-17 21:28:32 +00:00
Sign in to join this conversation.