first commit

This commit is contained in:
brusnitsyn
2026-04-16 17:57:58 +09:00
commit 7a13ff3b74
22 changed files with 3319 additions and 0 deletions

45
app/cli.py Normal file
View File

@@ -0,0 +1,45 @@
import traceback
from .config import Config
def main():
"""Основная функция"""
try:
from .migrator import DatabaseMigrator
# Инициализация конфигурации
config = Config()
# Создание мигратора
migrator = DatabaseMigrator(config)
# Запуск миграции
report = migrator.run_migration()
# Очистка старых логов
migrator.cleanup_old_logs(days_to_keep=7)
# Вывод краткой статистики в консоль
print("\n" + "="*60)
print("МИГРАЦИЯ ЗАВЕРШЕНА!")
print("="*60)
print(f"Успешно: {report['summary']['successful_tables']}/{report['summary']['total_tables']} таблиц")
print(f"Всего строк: {report['summary']['total_rows']}")
print(f"Продолжительность: {report['summary']['duration']}")
print(f"Лог-файл: {migrator.logger.log_file}")
print("="*60)
# Возвращаем код завершения
if report['summary']['failed_tables'] > 0:
return 1 # Есть ошибки
else:
return 0 # Успех
except KeyboardInterrupt:
print("\nМиграция прервана пользователем")
return 130
except Exception as e:
print(f"Критическая ошибка: {e}")
print(traceback.format_exc())
return 1