71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
|
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 <user_sync> <organizacion>")
|
||
|
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))
|