33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from sqlalchemy.orm import Session
|
|
from config.database import SessionLocal
|
|
from config.settings import settings
|
|
from models.user import User
|
|
from utils.security import get_password_hash
|
|
|
|
def init_database():
|
|
"""Initialize database with default admin user."""
|
|
db = SessionLocal()
|
|
try:
|
|
# Check if admin user exists
|
|
admin = db.query(User).filter(User.email == settings.ADMIN_EMAIL).first()
|
|
if not admin:
|
|
# Create admin user
|
|
admin = User(
|
|
email=settings.ADMIN_EMAIL,
|
|
username="admin",
|
|
full_name="Administrator",
|
|
hashed_password=get_password_hash(settings.ADMIN_PASSWORD),
|
|
is_active=True,
|
|
is_admin=True
|
|
)
|
|
db.add(admin)
|
|
db.commit()
|
|
print(f"Admin user created: {settings.ADMIN_EMAIL}")
|
|
else:
|
|
print(f"Admin user already exists: {settings.ADMIN_EMAIL}")
|
|
except Exception as e:
|
|
print(f"Error initializing database: {e}")
|
|
db.rollback()
|
|
finally:
|
|
db.close()
|