From 6eca884bc12ac5a441b8f3cae098c3b32591a823 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Thu, 30 May 2019 09:39:08 +0200 Subject: [PATCH] Suspende temporariamente migracao de materias em conflito --- sapl/legacy/migracao_dados.py | 8 ++-- .../legacy/scripts/ressuscita_dependencias.py | 38 +++++++++++++++---- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/sapl/legacy/migracao_dados.py b/sapl/legacy/migracao_dados.py index b2a11208c..413fe509e 100644 --- a/sapl/legacy/migracao_dados.py +++ b/sapl/legacy/migracao_dados.py @@ -304,7 +304,7 @@ def exec_sql(sql, db="default"): exec_legado = partial(exec_sql, db="legacy") -def _formatar_lista_para_sql(iteravel): +def formatar_lista_para_sql(iteravel): lista = list(iteravel) if lista: return "({})".format(str(lista)[1:-1]) # transforma "[...]" em "(...)" @@ -316,7 +316,7 @@ def exec_legado_em_subconjunto(sql, ids): """Executa uma query sql no legado no formato '.... in {}' interpolando `ids`, se houver ids""" - lista_sql = _formatar_lista_para_sql(ids) + lista_sql = formatar_lista_para_sql(ids) if lista_sql: return exec_legado(sql.format(lista_sql)) else: @@ -459,7 +459,7 @@ def unifica_autores_repetidos_no_legado(campo_agregador): # usamos uma tupla neutra se o conjunto é vazio # p q a query seja sintaticamente correta - ids_ja_migrados = _formatar_lista_para_sql( + ids_ja_migrados = formatar_lista_para_sql( get_all_ids_from_model(Autor) or [-1000] ) @@ -1960,7 +1960,7 @@ def deletados(model): return {v.object_id: v for v in deletados} -def analisa_conflitos_materias(): +def get_conflitos_materias_legado_e_producao(): """ Analisa conflitos entre materias nao migradas e em producao """ diff --git a/sapl/legacy/scripts/ressuscita_dependencias.py b/sapl/legacy/scripts/ressuscita_dependencias.py index bb14a9b9c..6befefe79 100644 --- a/sapl/legacy/scripts/ressuscita_dependencias.py +++ b/sapl/legacy/scripts/ressuscita_dependencias.py @@ -6,13 +6,21 @@ import texttable import yaml from unipath import Path -from sapl.legacy.migracao_dados import (PROPAGACOES_DE_EXCLUSAO, - campos_novos_para_antigos, exec_legado, - get_apagados_que_geram_ocorrencias_fk, - get_arquivos_ajustes_pre_migracao, - models_novos_para_antigos) -from sapl.legacy_migration_settings import (DIR_DADOS_MIGRACAO, DIR_REPO, - NOME_BANCO_LEGADO) +from sapl.legacy.migracao_dados import ( + PROPAGACOES_DE_EXCLUSAO, + campos_novos_para_antigos, + exec_legado, + formatar_lista_para_sql, + get_apagados_que_geram_ocorrencias_fk, + get_arquivos_ajustes_pre_migracao, + get_conflitos_materias_legado_e_producao, + models_novos_para_antigos, +) +from sapl.legacy_migration_settings import ( + DIR_DADOS_MIGRACAO, + DIR_REPO, + NOME_BANCO_LEGADO, +) def stripsplit(ll): @@ -559,3 +567,19 @@ Apagados já no sapl 3.1 que precisaram ser restaurados: {linhas} """ acrescenta_ao_arquivo_de_ajustes(texto) + + +def suspende_temporariamente_migracao_materias_conflito(): + ids = formatar_lista_para_sql( + id_legado + for ( + id_legado, + _, + ) in get_conflitos_materias_legado_e_producao().values() + ) + acrescenta_ao_arquivo_de_ajustes( + f""" +-- TEMPORARIO: materias em conflito entre legado nao migrado antes e producao +update materia_legislativa set ind_excluido = 1 where cod_materia in {ids}; +""" + )