62 lines
1.8 KiB
Python
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!")
|