Browse Source

Retira repetições ao ressucitar deps

pull/2255/head
Marcio Mazza 6 years ago
parent
commit
2f28a56295
  1. 20
      sapl/legacy/scripts/ressucita_dependencias.py

20
sapl/legacy/scripts/ressucita_dependencias.py

@ -1,15 +1,16 @@
from collections import OrderedDict
from textwrap import dedent
import texttable
import yaml
from unipath import Path
import texttable
from sapl.legacy.migracao_dados import (PROPAGACOES_DE_EXCLUSAO,
campos_novos_para_antigos, exec_legado,
get_arquivo_ajustes_pre_migracao,
models_novos_para_antigos)
from sapl.legacy_migration_settings import (DIR_DADOS_MIGRACAO, DIR_REPO,
NOME_BANCO_LEGADO)
from unipath import Path
def stripsplit(ll):
@ -19,6 +20,7 @@ def stripsplit(ll):
def _tab_legado(model):
return models_novos_para_antigos[model]._meta.db_table
fks_legado = {
(_tab_legado(m), campos_novos_para_antigos[f]): _tab_legado(f.related_model) # noqa
for m in models_novos_para_antigos
@ -342,6 +344,10 @@ def get_url(slug):
return 'sapl.{}.leg.br'.format(slug.replace('-', '.'))
def sem_repeticoes_mantendo_ordem(sequencia):
return OrderedDict.fromkeys(sequencia).keys()
def get_sqls_desexcluir_criar(preambulo, desexcluir, criar, slug):
sqls_links = [get_sql(*(args + (slug,)))
for itens, get_sql in ((desexcluir, get_sql_desexcluir),
@ -351,7 +357,15 @@ def get_sqls_desexcluir_criar(preambulo, desexcluir, criar, slug):
return ''
else:
sqls, links = zip(*sqls_links)
links = [l for ll in links for l in ll] # flatten
sqls = [dedent(s.strip()) + ';'
for sql in sqls
for s in sql.split(';') if s.strip()]
sqls = sem_repeticoes_mantendo_ordem(sqls)
links = (l for ll in links for l in ll) # flatten
links = sem_repeticoes_mantendo_ordem(links)
sqls, links = ['\n'.join(sorted(s)) for s in [sqls, links]]
return TEMPLATE_RESSUCITADOS.format(preambulo, links, sqls)

Loading…
Cancel
Save