Browse Source

Torna apagar legado opcional

pull/2144/head
Marcio Mazza 7 years ago
parent
commit
43f86e3d79
  1. 11
      sapl/legacy/management/commands/migracao_25_31.py
  2. 4
      sapl/legacy/migracao.py
  3. 25
      sapl/legacy/migracao_dados.py

11
sapl/legacy/management/commands/migracao_25_31.py

@ -7,5 +7,14 @@ class Command(BaseCommand):
help = 'Migração de dados do SAPL 2.5 para o SAPL 3.1'
def add_arguments(self, parser):
parser.add_argument(
'-a',
action='store_true',
default=False,
dest='apagar_do_legado',
help='Apagar entradas migradas do legado',
)
def handle(self, *args, **options):
migrar(interativo=False)
migrar(apagar_do_legado=options['apagar_do_legado'])

4
sapl/legacy/migracao.py

@ -18,7 +18,7 @@ def adornar_msg(msg):
return '\n{1}\n{0}\n{1}'.format(msg, '#' * len(msg))
def migrar(interativo=False):
def migrar(apagar_do_legado=False):
if TAG_MARCO in REPO.tags:
info('A migração já está feita.')
return
@ -26,7 +26,7 @@ def migrar(interativo=False):
'Antes de migrar '
'é necessário fazer a exportação de documentos do zope')
management.call_command('migrate')
migrar_dados()
migrar_dados(apagar_do_legado)
migrar_usuarios(REPO.working_dir)
migrar_documentos(REPO)
gravar_marco()

25
sapl/legacy/migracao_dados.py

@ -804,7 +804,7 @@ def roda_comando_shell(cmd):
assert res == 0, 'O comando falhou: {}'.format(cmd)
def migrar_dados():
def migrar_dados(apagar_do_legado=False):
try:
ocorrencias.clear()
ocorrencias.default_factory = list
@ -836,7 +836,7 @@ def migrar_dados():
fill_vinculo_norma_juridica()
fill_dados_basicos()
info('Começando migração: ...')
migrar_todos_os_models()
migrar_todos_os_models(apagar_do_legado)
except Exception as e:
ocorrencias['traceback'] = str(traceback.format_exc())
raise e
@ -886,12 +886,12 @@ def get_models_a_migrar():
return models
def migrar_todos_os_models():
def migrar_todos_os_models(apagar_do_legado):
for model in get_models_a_migrar():
migrar_model(model)
migrar_model(model, apagar_do_legado)
def migrar_model(model):
def migrar_model(model, apagar_do_legado):
print('Migrando %s...' % model.__name__)
model_legado, tabela_legado, campos_pk_legado = \
@ -945,12 +945,13 @@ def migrar_model(model):
novos.append(new) # guarda para salvar
# acumula deleção do registro no legado
sql_delete_legado += 'delete from {} where {};\n'.format(
tabela_legado,
' and '.join(
'{} = "{}"'.format(campo,
getattr(old, campo))
for campo in campos_pk_legado))
if apagar_do_legado:
sql_delete_legado += 'delete from {} where {};\n'.format(
tabela_legado,
' and '.join(
'{} = "{}"'.format(campo,
getattr(old, campo))
for campo in campos_pk_legado))
# salva novos registros
with reversion.create_revision():
@ -969,7 +970,7 @@ def migrar_model(model):
reinicia_sequence(model, ultima_pk_legado + 1)
# apaga registros migrados do legado
if sql_delete_legado:
if apagar_do_legado and sql_delete_legado:
exec_legado(sql_delete_legado)

Loading…
Cancel
Save