/
tinypot
/
integr
Обзор
Документация
Войти
/
tinypot
/
integr
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
task_management_api/create_admin.py
56 строк
2 KB
Tim Polus
lab1
21 янв 2026, 23:15
21 янв 2026, 23:15
dd1578c
Код
Авторство
О чём код?
""" Create admin user script """ import asyncio from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine from sqlalchemy.orm import sessionmaker from app.core.config import settings from app.core.database import Base from app.models.user import User from app.schemas.user import UserCreate from app.services.user_service import UserService async def create_admin(): """Create admin user""" # Create engine and session engine = create_async_engine( settings.DATABASE_URL.replace("postgresql://", "postgresql+asyncpg://"), echo=True ) async_session = sessionmaker( engine, class_=AsyncSession, expire_on_commit=False ) async with async_session() as session: # Create tables if they don't exist async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) # Check if admin already exists admin_user = await UserService.get_by_username(session, "admin") if admin_user: print("Admin user already exists!") return # Create admin user admin_data = UserCreate( email="admin@taskmanager.com", username="admin", password="admin123", full_name="System Administrator", is_active=True, is_superuser=True ) admin = await UserService.create(session, admin_data) print(f"Admin user created: {admin.username} (ID: {admin.id})") if __name__ == "__main__": asyncio.run(create_admin())