32 lines
981 B
Python
32 lines
981 B
Python
from sqlalchemy import create_engine, select
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.config import settings
|
|
from app.models.admin import Admin
|
|
from app.utils.security import hash_password
|
|
|
|
|
|
def sync_database_url() -> str:
|
|
return (
|
|
f"mysql+pymysql://{settings.mysql_user}:{settings.mysql_password}"
|
|
f"@{settings.mysql_host}:{settings.mysql_port}/{settings.mysql_database}?charset=utf8mb4"
|
|
)
|
|
|
|
|
|
def main() -> None:
|
|
engine = create_engine(sync_database_url())
|
|
with Session(engine) as session:
|
|
existing = session.execute(select(Admin).where(Admin.username == "admin")).scalar_one_or_none()
|
|
if existing:
|
|
print("Admin user already exists: admin")
|
|
return
|
|
|
|
admin = Admin(username="admin", password_hash=hash_password("Admin@123456"), role=2, is_active=1)
|
|
session.add(admin)
|
|
session.commit()
|
|
print("Created admin user: admin / Admin@123456")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|