from password_utils import get_password_hash from models import Admin, Base from database import SessionLocal, engine import argparse def create_initial_admin(username: str, password: str): """ Создает первого администратора в системе """ Base.metadata.create_all(bind=engine) db = SessionLocal() # Проверяем, существует ли уже админ с таким именем existing_admin = db.query(Admin).filter(Admin.username == username).first() if existing_admin: print(f"Администратор с именем {username} уже существует!") return # Создаем нового админа hashed_password = get_password_hash(password) db_admin = Admin(username=username, hashed_password=hashed_password) db.add(db_admin) db.commit() db.refresh(db_admin) print(f"Администратор {username} успешно создан!") db.close() if __name__ == "__main__": parser = argparse.ArgumentParser(description="Создание первого администратора") parser.add_argument("--username", required=True, help="Имя пользователя администратора") parser.add_argument("--password", required=True, help="Пароль администратора") args = parser.parse_args() create_initial_admin(args.username, args.password)