Files
quiz_test/tools/load_questions.py
Andrey K. Choi b0346e4bd7
Some checks reported errors
continuous-integration/drone/push Build encountered an error
cleaning root
2025-09-11 08:18:31 +09:00

51 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""
Скрипт для загрузки вопросов из CSV файлов в базу данных
"""
import asyncio
import sys
import os
from pathlib import Path
# Добавляем путь к проекту
project_root = Path(__file__).parent
sys.path.append(str(project_root))
from config.config import config
from src.database.database import DatabaseManager
from src.services.csv_service import CSVQuizLoader
async def load_questions_to_db():
"""Загрузка вопросов из CSV файлов в базу данных"""
print("📚 Загрузка вопросов из CSV в базу данных...")
db = DatabaseManager(config.database_path)
csv_loader = CSVQuizLoader(config.csv_data_path)
# Получаем все тесты
tests = await db.get_tests_by_category()
for test in tests:
csv_file = test['csv_file']
test_id = test['id']
print(f" 📄 Загружаем {csv_file} для теста ID {test_id}")
# Загружаем вопросы из CSV
questions = await csv_loader.load_questions_from_csv(csv_file)
if questions:
# Добавляем вопросы в базу
success = await db.add_questions_to_test(test_id, questions)
if success:
print(f" ✅ Загружено {len(questions)} вопросов")
else:
print(f" ❌ Ошибка загрузки для теста {test_id}")
else:
print(f" ⚠️ Нет вопросов в файле {csv_file}")
print("✅ Загрузка завершена!")
if __name__ == "__main__":
asyncio.run(load_questions_to_db())