Browse Source

fix: corrige erro de loaddata cargomesa

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.
pull/3690/head
LeandroJatai 1 year ago
parent
commit
570002b65d
  1. 31
      sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py
  2. 41
      sapl/parlamentares/migrations/0044_adiciona_cargos_mesa.py

31
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),
]

41
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),
]
Loading…
Cancel
Save