Commit 299ea181 authored by Cristian Aguirre's avatar Cristian Aguirre

Fix bugs deleting tables when is necessary

parent e4197850
......@@ -121,7 +121,7 @@ class Mysql:
result = connection.execute(check_query)
exists = bool(result.fetchone())
except Exception as e:
logger.error(f"Error obteniendo existencia de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna")
finally:
return exists
......@@ -130,9 +130,10 @@ class Mysql:
try:
check_query = f"SELECT COUNT(*) FROM {table_name}"
result = connection.execute(check_query)
result = result.fetchone()[0]
if result > 0:
exists = True
except Exception as e:
logger.error(f"Error obteniendo counts de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna")
finally:
return exists
......@@ -129,7 +129,7 @@ class Oracle:
result = connection.execute(check_query)
exists = bool(result.fetchone())
except Exception as e:
logger.error(f"Error obteniendo existencia de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna")
finally:
return exists
......@@ -138,9 +138,10 @@ class Oracle:
try:
check_query = f"SELECT COUNT(*) FROM {table_name.upper()}"
result = connection.execute(check_query)
result = result.fetchone()[0]
if result > 0:
exists = True
except Exception as e:
logger.error(f"Error obteniendo counts de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna.")
finally:
return exists
\ No newline at end of file
return exists
......@@ -122,7 +122,7 @@ class Postgres:
result = connection.execute(check_query)
exists = bool(result.fetchone())
except Exception as e:
logger.error(f"Error obteniendo existencia de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna")
finally:
return exists
......@@ -131,9 +131,10 @@ class Postgres:
try:
check_query = f"SELECT COUNT(*) FROM {table_name}"
result = connection.execute(check_query)
result = result.fetchone()[0]
if result > 0:
exists = True
except Exception as e:
logger.error(f"Error obteniendo counts de tabla. {e}")
logger.info(f"No se encuentra la tabla {table_name} en la BD interna")
finally:
return exists
\ No newline at end of file
return exists
......@@ -90,6 +90,8 @@ def on_success_extractor(context) -> None:
ti = context["ti"]
task_name = f"{ti.task_id}_{ti.map_index}"
selects = Variable.get('SELECTS', default_var=[], deserialize_json=True)
if len(selects) == 0:
raise AirflowSkipException(f"No se encontraron operaciones de extraccion")
command = selects[ti.map_index]
tablename = select_multiple(command[1])["tablename"]
status = ProcessStatusEnum.SUCCESS.value
......@@ -142,6 +144,7 @@ def extract_from_source(command, source_conn, intern_conn, chunksize: int, timez
result = bool(intern_conn.check_table(tablename, connection))
resultado = intern_conn.verify_table(tablename, connection)
if not result or not resultado:
_ = delete_table(tablename, intern_conn)
create = intern_conn.create_table(model)
if create:
logger.info(f"Creado correctamente la tabla {tablename}. Creado?: {create}")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment