mirror of https://github.com/interlegis/sapl.git
Browse Source
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
2 changed files with 46 additions and 26 deletions
@ -1,41 +1,20 @@ |
|||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
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): |
class Migration(migrations.Migration): |
||||
|
|
||||
dependencies = [ |
dependencies = [ |
||||
# A dependencia real desse script é o arquivo 0001_initial.py, mas |
# A dependencia real desse script é o arquivo 0001_initial.py, mas |
||||
# isso gera um erro (Conflicting migrations detected; multiple leaf |
# isso gera um erro (Conflicting migrations detected; multiple leaf |
||||
# nodes in the migration graph). para não ocasionar problemas de migração, |
# nodes in the migration graph). para não ocasionar problemas de migração, |
||||
# vamos manter a ordem padrão do django. |
# vamos manter a ordem padrão do django. |
||||
('parlamentares', '0007_adiciona_partidos'), |
('parlamentares', '0007_adiciona_partidos'), |
||||
] |
] |
||||
|
|
||||
operations = [ |
operations = [ |
||||
migrations.RunPython(gera_cargos_mesa), |
# obsoleto, migrado para 0044 devido a dependência gerada por 0043 |
||||
|
# migrations.RunPython(gera_cargos_mesa), |
||||
] |
] |
||||
|
@ -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…
Reference in new issue