diff --git a/sapl/legacy/scripts/street_sweeper.py b/sapl/legacy/scripts/street_sweeper.py index f3c1d2aa2..5f200480f 100644 --- a/sapl/legacy/scripts/street_sweeper.py +++ b/sapl/legacy/scripts/street_sweeper.py @@ -14,7 +14,7 @@ SELECT_EXCLUIDOS = "SELECT %s FROM %s WHERE ind_excluido = 1 ORDER BY %s" REGISTROS_INCONSISTENTES = "DELETE FROM %s WHERE %s in (%s) AND ind_excluido = 0 " -EXCLUI_REGISTRO = "DELETE FROM %s WHERE ind_excluido=1" +EXCLUI_REGISTRO = "DELETE FROM %s WHERE ind_excluido=1" NORMA_DEP = "DELETE FROM vinculo_norma_juridica WHERE cod_norma_referente in (%s) OR \ cod_norma_referida in (%s) AND ind_excluido = 0 " @@ -22,7 +22,7 @@ NORMA_DEP = "DELETE FROM vinculo_norma_juridica WHERE cod_norma_referente in (%s mapa = {} # mapa com tabela principal -> tabelas dependentes mapa['materia_legislativa'] = ['acomp_materia', 'autoria', 'despacho_inicial', - 'documento_acessorio', 'expediente_materia', + 'documento_acessorio', 'expediente_materia', 'legislacao_citada', 'materia_assunto', 'numeracao', 'ordem_dia', 'parecer', 'proposicao', 'registro_votacao', @@ -32,9 +32,15 @@ mapa['comissao'] = ['composicao_comissao'] mapa['sessao_legislativa'] = ['composicao_mesa'] mapa['tipo_expediente'] = ['expediente_sessao_plenaria'] -tab_pk = {'materia_legislativa': 'cod_materia'} - - +""" +mapa['autor'] = ['tipo_autor', 'partido', 'comissao', 'parlamentar'] +mapa['parlamentar'] = ['autor', 'autoria', 'composicao_comissao', + 'composicao_mesa', 'dependente', 'filiacao', + 'mandato', 'mesa_sessao_plenaria', 'oradores', + 'oradores_expediente', 'ordem_dia_presenca', + 'registro_votacao_parlamentar', 'relatoria', + 'sessao_plenaria_presenca', 'unidade_tramitacao'] +""" def get_ids_excluidos(cursor, query): """ @@ -46,13 +52,13 @@ def get_ids_excluidos(cursor, query): excluidos = [str(val) for sublist in excluidos for val in sublist] return excluidos - + def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): - + QUERY = SELECT_EXCLUIDOS % (pk, tabela_principal, pk) ids_excluidos = get_ids_excluidos(cursor, QUERY) print("\nRegistros da tabela '%s' com ind_excluido = 1: %s" % (tabela_principal.upper(), len(ids_excluidos))) - + """ Remove registros de tabelas que dependem da tabela principal, e que se encontram com ind_excluido = 0 (nao excluidas), se @@ -61,14 +67,14 @@ def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): if ids_excluidos: print("Dependencias inconsistentes") for tabela in mapa[tabela_principal]: - + QUERY_DEP = REGISTROS_INCONSISTENTES % (tabela, pk, ','.join(ids_excluidos)) - + # Trata caso especifico de norma_juridica if query_dependentes: QUERY_DEP = query_dependentes % (','.join(ids_excluidos), ','.join(ids_excluidos)) - + print(tabela.upper(), cursor.execute(QUERY_DEP)) """ @@ -79,8 +85,8 @@ def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): for tabela in mapa[tabela_principal] + [tabela_principal]: QUERY = EXCLUI_REGISTRO % tabela print(tabela.upper(), cursor.execute(QUERY)) - - + + def remove_excluidas(cursor): cursor.execute("SHOW_TABLES") for row in cursor.fetchall(): @@ -88,7 +94,13 @@ def remove_excluidas(cursor): def remove_proposicao_invalida(cursor): - return cursor.execute("DELETE FROM proposicao WHERE cod_mat_ou_doc is null") + return cursor.execute( + "DELETE FROM proposicao WHERE cod_mat_ou_doc is null") + + +def remove_materia_assunto_invalida(cursor): + return cursor.execute( + "DELETE FROM materia_assunto WHERE cod_assunto = 0") def shotgun_remove(cursor): @@ -97,10 +109,13 @@ def shotgun_remove(cursor): cursor.execute("DELETE FROM %s WHERE ind_excluido = 1" % tabela) except: pass - + if __name__ == '__main__': - connection = pymysql.connect(host=HOST, user=USER, password=PASSWORD, db=DB) + connection = pymysql.connect(host=HOST, + user=USER, + password=PASSWORD, + db=DB) cursor = connection.cursor() # MATERIA LEGISLATIVA remove_tabelas(cursor, 'materia_legislativa', 'cod_materia') @@ -112,9 +127,17 @@ if __name__ == '__main__': remove_tabelas(cursor, 'sessao_legislativa', 'cod_sessao_leg') # EXPEDIENTE SESSAO remove_tabelas(cursor, 'tipo_expediente', 'cod_expediente') + # AUTOR + remove_tabelas(cursor, 'autor', 'cod_autor') + # PARLAMENTAR + remove_tabelas(cursor, 'parlamentar', 'cod_parlamentar') + # PROPOSICAO remove_proposicao_invalida(cursor) - # shotgun_remove(cursor) + # MATERIA_ASSUNTO + remove_materia_assunto_invalida(cursor) + + # shotgun_remove(cursor) cursor.close()