From 570002b65d1cab6361bb289f5d36dbbdfd6f0409 Mon Sep 17 00:00:00 2001 From: LeandroJatai Date: Mon, 20 Nov 2023 13:44:49 -0300 Subject: [PATCH] fix: corrige erro de loaddata cargomesa MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ao inserir o field id_ordenacao em parlamentares.CargoMesa, ao rodar migrate para geração inicial da base de dados, um erro de loaddata ocorria com o pre_popula de cargomesa, não pelos do fixture que não necessitou de alteração no json, mas pelo código do model que é usado pelo loaddata e gera um sql de inserção com o campo id_ordenacao que ainda não existe ao rodar 0008. Como é irrelevante o ponto de execução de 0008, mative este como mensagem de obsolência informando que foi migrado para 0044 por depender de 0043. --- .../migrations/0008_adiciona_cargos_mesa.py | 31 +++----------- .../migrations/0044_adiciona_cargos_mesa.py | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+), 26 deletions(-) create mode 100644 sapl/parlamentares/migrations/0044_adiciona_cargos_mesa.py diff --git a/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py b/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py index fe88e6196..cab9c1158 100644 --- a/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py +++ b/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py @@ -1,41 +1,20 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.db import migrations -import json -import os - - -from django.core.management import call_command +from django.db import migrations -def gera_cargos_mesa(apps, schema_editor): - CargoMesa = apps.get_model("parlamentares", "CargoMesa") - db_alias = schema_editor.connection.alias - cargos_mesa = CargoMesa.objects.all().exists() - - if cargos_mesa: - # Caso haja algum CargoMesa cadastrado na base de dados, - # a migração não deve ser carregada para evitar duplicações de dados. - print("Carga de {} não efetuada. Já Existem {} cadastrados...".format( - CargoMesa._meta.verbose_name, CargoMesa._meta.verbose_name_plural)) - else: - fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures')) - # pega partidos listados em fixtures/pre_popula_partidos.json - fixture_filename = 'pre_popula_cargosmesa.json' - fixture_file = os.path.join(fixture_dir, fixture_filename) - call_command('loaddata', fixture_file) - class Migration(migrations.Migration): dependencies = [ # A dependencia real desse script é o arquivo 0001_initial.py, mas # isso gera um erro (Conflicting migrations detected; multiple leaf - # nodes in the migration graph). para não ocasionar problemas de migração, - # vamos manter a ordem padrão do django. + # nodes in the migration graph). para não ocasionar problemas de migração, + # vamos manter a ordem padrão do django. ('parlamentares', '0007_adiciona_partidos'), ] operations = [ - migrations.RunPython(gera_cargos_mesa), + # obsoleto, migrado para 0044 devido a dependência gerada por 0043 + # migrations.RunPython(gera_cargos_mesa), ] diff --git a/sapl/parlamentares/migrations/0044_adiciona_cargos_mesa.py b/sapl/parlamentares/migrations/0044_adiciona_cargos_mesa.py new file mode 100644 index 000000000..3b5277741 --- /dev/null +++ b/sapl/parlamentares/migrations/0044_adiciona_cargos_mesa.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import os + +from django.core.management import call_command +from django.db import migrations + + +def gera_cargos_mesa(apps, schema_editor): + CargoMesa = apps.get_model("parlamentares", "CargoMesa") + db_alias = schema_editor.connection.alias + cargos_mesa = CargoMesa.objects.all().exists() + + if cargos_mesa: + # Caso haja algum CargoMesa cadastrado na base de dados, + # a migração não deve ser carregada para evitar duplicações de dados. + print("Carga de {} não efetuada. Já Existem {} cadastrados...".format( + CargoMesa._meta.verbose_name, CargoMesa._meta.verbose_name_plural)) + else: + fixture_dir = os.path.abspath(os.path.join( + os.path.dirname(__file__), '../fixtures')) + # pega partidos listados em fixtures/pre_popula_partidos.json + fixture_filename = 'pre_popula_cargosmesa.json' + fixture_file = os.path.join(fixture_dir, fixture_filename) + call_command('loaddata', fixture_file) + + +class Migration(migrations.Migration): + + dependencies = [ + # A dependencia real desse script é o arquivo 0001_initial.py, mas + # isso gera um erro (Conflicting migrations detected; multiple leaf + # nodes in the migration graph). para não ocasionar problemas de migração, + # vamos manter a ordem padrão do django. + ('parlamentares', '0043_auto_20231007_2149'), + ] + + operations = [ + migrations.RunPython(gera_cargos_mesa), + ]