Browse Source

Usa campos crus do reversion p evitar erro de desserialização

migracao
Marcio Mazza 6 years ago
parent
commit
93364971fd
  1. 16
      sapl/legacy/migracao_dados.py

16
sapl/legacy/migracao_dados.py

@ -1,4 +1,5 @@
import datetime
import json
import os
import re
import subprocess
@ -1211,12 +1212,9 @@ def migrar_model(model, apagar_do_legado):
else:
campos_chave = campos_pk_legado
def sem_sufixo_id(k):
return k[:-3] if k.endswith("_id") else k
apagados_pelo_usuario = Version.objects.get_deleted(model)
apagados_pelo_usuario = [
{sem_sufixo_id(k): v for k, v in version.field_dict.items()}
{k: v for k, v in get_campos_crus_reversion(version).items()}
for version in apagados_pelo_usuario
]
campos_chave_novos = {campos_velhos_p_novos[c] for c in campos_chave}
@ -1295,6 +1293,16 @@ def migrar_model(model, apagar_do_legado):
exec_legado(sql_delete_legado)
def get_campos_crus_reversion(version):
"""Pega campos crus de uma versao do django reversion
p evitar erros de deserialização"""
assert version.format == "json"
[meta] = json.loads(version.serialized_data)
campos = meta["fields"]
campos["id"] = meta["pk"]
return campos
def encontra_conflitos_tipo_autor():
# Encontrei conflito de ids em TipoAutor entre
# um registro que existiu na base e foi apagado e um registro ressuscitado.

Loading…
Cancel
Save