#!/usr/bin/env python3 """ Script para inicializar la base de datos de Syntria Ejecutar desde Portainer > Stack > Servicios > backend > Console """ from app.core.database import SessionLocal, engine, Base from app.models import User from app.core.security import get_password_hash def init_database(): """Inicializar base de datos y crear usuarios""" print("šŸ—„ļø Creando tablas...") # Crear todas las tablas Base.metadata.create_all(bind=engine) print("āœ… Tablas creadas") # Crear sesión db = SessionLocal() try: # Verificar si ya existen usuarios existing_users = db.query(User).count() if existing_users > 0: print(f"āš ļø Ya existen {existing_users} usuarios en la base de datos") response = input("ĀæDeseas crear usuarios de todas formas? (s/n): ") if response.lower() != 's': print("āŒ Operación cancelada") return print("\nšŸ‘„ Creando usuarios...") # Usuario Admin admin = User( username='admin', password_hash=get_password_hash('admin123'), role='admin', full_name='Administrador', email='admin@syntria.com', is_active=True ) db.add(admin) print("āœ… Usuario 'admin' creado (password: admin123)") # Usuario MecĆ”nico mecanico = User( username='mecanico', password_hash=get_password_hash('mec123'), role='mecanico', full_name='MecĆ”nico', email='mecanico@syntria.com', is_active=True ) db.add(mecanico) print("āœ… Usuario 'mecanico' creado (password: mec123)") # Guardar cambios db.commit() print("\n✨ Base de datos inicializada correctamente!") print("\nšŸ“‹ Usuarios creados:") print(" - admin / admin123 (Administrador)") print(" - mecanico / mec123 (MecĆ”nico)") except Exception as e: print(f"\nāŒ Error: {e}") db.rollback() raise finally: db.close() if __name__ == "__main__": init_database()