/
ring0
/
support-system
Обзор
Документация
Войти
/
ring0
/
support-system
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
seed.py
80 строк
3 KB
ring0
Init project
22 июн 2026, 17:13
Верифицирован
22 июн 2026, 17:13
9df53b7
Код
Авторство
О чём код?
"""Наполнение базы данных тестовыми данными. Создаёт справочники категорий и приоритетов, а также три учётные записи — по одной на каждую роль. Запуск: python seed.py """ from db import engine, Base, SessionLocal from models import User, Category, Priority, Ticket from auth import hash_password CATEGORIES = [ "Сетевое оборудование", "Программное обеспечение", "Периферийные устройства", "Доступ и учётные записи", ] PRIORITIES = [ ("Низкий", 1), ("Средний", 2), ("Высокий", 3), ("Критический", 4), ] USERS = [ # username, password, full_name, email, role ("admin", "admin123", "Администратор Системы", "admin@example.com", "admin"), ("petrov", "spec123", "Петров Пётр Петрович", "petrov@example.com", "specialist"), ("ivanov", "user123", "Иванов Иван Иванович", "ivanov@example.com", "user"), ] def seed(): Base.metadata.create_all(bind=engine) db = SessionLocal() try: if db.query(Category).count() == 0: for name in CATEGORIES: db.add(Category(name=name)) if db.query(Priority).count() == 0: for name, weight in PRIORITIES: db.add(Priority(name=name, weight=weight)) if db.query(User).count() == 0: for username, password, full_name, email, role in USERS: db.add(User( username=username, password_hash=hash_password(password), full_name=full_name, email=email, role=role, )) db.commit() # Демонстрационная заявка от заявителя if db.query(Ticket).count() == 0: author = db.query(User).filter(User.username == "ivanov").first() category = db.query(Category).first() priority = db.query(Priority).filter(Priority.name == "Средний").first() if author and category and priority: db.add(Ticket( title="Не работает доступ к корпоративной почте", description="При входе в почтовый клиент выводится ошибка авторизации.", category_id=category.id, priority_id=priority.id, author_id=author.id, status="open", )) db.commit() print("База данных успешно наполнена тестовыми данными.") print("Учётные записи:") for username, password, _, _, role in USERS: print(f" {role:11s} -> {username} / {password}") finally: db.close() if __name__ == "__main__": seed()