From c44ab717330ceb026155a2ea916ad3ffab32817e Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Mon, 22 Apr 2019 17:39:50 +0200 Subject: [PATCH] =?UTF-8?q?Corrige=20reinicia=20sequence=20para=20migra?= =?UTF-8?q?=C3=A7=C3=A3o=20corretiva?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/legacy/migracao_dados.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sapl/legacy/migracao_dados.py b/sapl/legacy/migracao_dados.py index 27932fc26..4ec75667c 100644 --- a/sapl/legacy/migracao_dados.py +++ b/sapl/legacy/migracao_dados.py @@ -833,10 +833,15 @@ def get_sequence_name_and_last_value(model): return sequence_name, last_value -def reinicia_sequence(model, id): - sequence_name = '%s_id_seq' % model._meta.db_table - exec_sql('ALTER SEQUENCE %s RESTART WITH %s MINVALUE -1;' % ( - sequence_name, id)) +def reinicia_sequence(model, ultima_pk_legado): + ultimo_id = max( + ultima_pk_legado, + 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) @@ -1091,7 +1096,7 @@ def migrar_model(model, apagar_do_legado): # pois numa nova versão da migração podemos inserir registros # não migrados antes sem conflito com pks criadas até lá if get_id_do_legado: - reinicia_sequence(model, ultima_pk_legado + 1) + reinicia_sequence(model, ultima_pk_legado) # apaga registros migrados do legado if apagar_do_legado and sql_delete_legado: