Files
checklist/backend/init_db.py
2025-11-19 01:09:25 -03:00

62 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
Script para inicializar la base de datos con usuarios de prueba
"""
from app.core.database import SessionLocal, engine, Base
from app.core.security import get_password_hash
from app.models import User
from sqlalchemy import text
def init_db():
db = SessionLocal()
try:
# Verificar conexión
db.execute(text("SELECT 1"))
print("✓ Conexión a la base de datos exitosa")
# Verificar si ya existen usuarios
existing_users = db.query(User).count()
if existing_users > 0:
print(f"⚠ Ya existen {existing_users} usuario(s) en la base de datos")
return
# Crear usuario administrador
admin = User(
username="admin",
email="admin@checklist.com",
full_name="Administrador",
password_hash=get_password_hash("admin123"),
role="admin",
is_active=True
)
db.add(admin)
# Crear usuario mecánico de prueba
mechanic = User(
username="mechanic",
email="mechanic@checklist.com",
full_name="Mecánico de Prueba",
password_hash=get_password_hash("mechanic123"),
role="mechanic",
is_active=True
)
db.add(mechanic)
db.commit()
print("✓ Usuarios creados exitosamente:")
print(" - Admin: username='admin', password='admin123'")
print(" - Mechanic: username='mechanic', password='mechanic123'")
except Exception as e:
print(f"✗ Error al inicializar la base de datos: {e}")
db.rollback()
finally:
db.close()
if __name__ == "__main__":
print("Inicializando base de datos...")
init_db()
print("¡Inicialización completada!")