Browse Source

Corrige reinicia sequence para migração corretiva

migracao
Marcio Mazza 6 years ago
parent
commit
c44ab71733
  1. 15
      sapl/legacy/migracao_dados.py

15
sapl/legacy/migracao_dados.py

@ -833,10 +833,15 @@ def get_sequence_name_and_last_value(model):
return sequence_name, last_value return sequence_name, last_value
def reinicia_sequence(model, id): def reinicia_sequence(model, ultima_pk_legado):
sequence_name = '%s_id_seq' % model._meta.db_table ultimo_id = max(
exec_sql('ALTER SEQUENCE %s RESTART WITH %s MINVALUE -1;' % ( ultima_pk_legado,
sequence_name, id)) model.objects.latest('id').id if model.objects.exists() else 0)
sequence_name, last_value = get_sequence_name_and_last_value(model)
if ultimo_id > last_value:
exec_sql(f'''
ALTER SEQUENCE {sequence_name}
RESTART WITH {ultimo_id + 1} MINVALUE -1;''')
REPO = git.Repo.init(DIR_REPO) REPO = git.Repo.init(DIR_REPO)
@ -1091,7 +1096,7 @@ def migrar_model(model, apagar_do_legado):
# pois numa nova versão da migração podemos inserir registros # pois numa nova versão da migração podemos inserir registros
# não migrados antes sem conflito com pks criadas até lá # não migrados antes sem conflito com pks criadas até lá
if get_id_do_legado: if get_id_do_legado:
reinicia_sequence(model, ultima_pk_legado + 1) reinicia_sequence(model, ultima_pk_legado)
# apaga registros migrados do legado # apaga registros migrados do legado
if apagar_do_legado and sql_delete_legado: if apagar_do_legado and sql_delete_legado:

Loading…
Cancel
Save