Multimodel_Rag / scripts /seed_admin.py
Dhrumil Parikh
deploy GeminiRAG
cdc55f4
Raw
History Blame Contribute Delete
1.37 kB
"""
Create or update an admin user in the database.
Usage:
py scripts/seed_admin.py --email admin@example.com --password MyPass!
If a user with that email already exists their password and role are updated.
If no user exists a new one is created with role=admin and is_active=True.
Requires DATABASE_URL to be set in .env (loaded automatically).
"""
import argparse
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from app.config import settings
from app.models.db import User, UserRole, get_engine
from app.security import hash_password
from sqlmodel import Session, select
def seed(email: str, password: str):
engine = get_engine()
with Session(engine) as db:
existing = db.exec(select(User).where(User.email == email)).first()
if existing:
print(f"User {email} already exists with role {existing.role}")
return
user = User(
email=email,
hashed_password=hash_password(password),
role=UserRole.admin,
)
db.add(user)
db.commit()
print(f"Admin user created: {email}")
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--email", required=True)
p.add_argument("--password", required=True)
args = p.parse_args()
seed(args.email, args.password)