from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.exc import ProgrammingError from models import Usuario, Base import logging from logging.handlers import RotatingFileHandler import os import sys # Directorio actual dir_actual = os.getcwd() # Directorio para Logs dir_logs = dir_actual+'/logs' # Directorio para data BD dir_data = dir_actual+'/data' # Se crea directorio logs y data por si no existe... os.makedirs(dir_logs, exist_ok=True) os.makedirs(dir_data, exist_ok=True) rotating_handler = RotatingFileHandler(os.path.join(dir_logs,"users.log"), maxBytes=262144000, backupCount=10) logging.basicConfig(level=logging.INFO, handlers=[rotating_handler], format='%(asctime)s - %(levelname)s - %(message)s') # Definir la ruta personalizada para el archivo de la base de datos ruta_base_datos = os.path.join(dir_data, "registros.db") # Crear una conexión a la base de datos SQLite engine = create_engine(f'sqlite:///{ruta_base_datos}') # Crear la tabla en la base de datos si no existe Base.metadata.create_all(engine) # Crear una sesión Session = sessionmaker(bind=engine) session = Session() def crear_usuario(user_sync, org): # Verificar si el usuario ya existe usuario_existente = session.query(Usuario).filter_by(usuario_sync=user_sync).first() if usuario_existente: logging.error(f"El usuario '{user_sync}' ya existe en la base de datos.") print(f"El usuario '{user_sync}' ya existe en la base de datos.") return try: # Crear un nuevo usuario nuevo_usuario = Usuario(usuario_sync=str(user_sync).lower(), organizacion=org) session.add(nuevo_usuario) session.commit() except Exception: pass finally: session.close() if __name__ == "__main__": if len(sys.argv) != 3: print("Uso: python add_user.py ") sys.exit(1) user_par = sys.argv[1] org_par = sys.argv[2] try: crear_usuario(user_par, org_par) logging.info(f"Se crea usuario '{user_par}' en la base de datos.") print(f"Se crea usuario '{user_par}' en la base de datos.") except ProgrammingError as e: logging.error(str(e)) print(str(e))