46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
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
|