ef4df2925f
Выносит DDL-логику создания месячных RANGE-партиций из команды PartitionsCreateMonths в переиспользуемый сервис MonthlyPartitionManager. Сервис используется командой (DRY) и будет использован HistoricalImportService для партиций под исторические даты CSV. - MonthlyPartitionManager::ensureRange(table, from, to) — гарантирует партиции под диапазон дат, идемпотентно; отвергает незарегистрированные таблицы - MonthlyPartitionManager::ensureMonth(table, monthStart) — одна партиция - PartitionsCreateMonths рефакторена: убраны PARTITIONED_TABLES, partitionExists(), use DB; inject MonthlyPartitionManager через handle() - Test: MonthlyPartitionManagerTest (3 теста, DatabaseTransactions — DDL откат) - Regression: PartitionsCreateMonthsTest (4 теста) — зелёный, поведение не изменилось Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>