Browse Source

Configura TIME_ZONE automaticamente na migração

pull/2255/head
Marcio Mazza 6 years ago
parent
commit
eafe16b47d
  1. 25
      sapl/legacy/migracao_dados.py
  2. 19
      sapl/legacy_migration_settings.py

25
sapl/legacy/migracao_dados.py

@ -33,7 +33,8 @@ from sapl.comissoes.models import Comissao, Composicao, Participacao, Reuniao
from sapl.legacy.models import NormaJuridica as OldNormaJuridica from sapl.legacy.models import NormaJuridica as OldNormaJuridica
from sapl.legacy.models import TipoNumeracaoProtocolo from sapl.legacy.models import TipoNumeracaoProtocolo
from sapl.legacy_migration_settings import (DIR_DADOS_MIGRACAO, DIR_REPO, from sapl.legacy_migration_settings import (DIR_DADOS_MIGRACAO, DIR_REPO,
NOME_BANCO_LEGADO) NOME_BANCO_LEGADO, PYTZ_TIMEZONE,
SIGLA_CASA)
from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio, from sapl.materia.models import (AcompanhamentoMateria, DocumentoAcessorio,
MateriaLegislativa, Proposicao, MateriaLegislativa, Proposicao,
StatusTramitacao, TipoDocumento, StatusTramitacao, TipoDocumento,
@ -50,7 +51,6 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, OrdemDia,
from sapl.utils import normalize from sapl.utils import normalize
from .scripts.normaliza_dump_mysql import normaliza_dump_mysql from .scripts.normaliza_dump_mysql import normaliza_dump_mysql
from .timezonesbrasil import get_timezone
# YAML SETUP ############################################################### # YAML SETUP ###############################################################
@ -807,19 +807,6 @@ def reinicia_sequence(model, id):
REPO = git.Repo.init(DIR_REPO) REPO = git.Repo.init(DIR_REPO)
# configura timezone de migração
match = re.match('sapl_cm_(.*)', NOME_BANCO_LEGADO)
sigla_casa = match.group(1)
PATH_TABELA_TIMEZONES = DIR_DADOS_MIGRACAO.child('tabela_timezones.yaml')
with open(PATH_TABELA_TIMEZONES, 'r') as arq:
tabela_timezones = yaml.load(arq)
municipio, uf, nome_timezone = tabela_timezones[sigla_casa]
if nome_timezone:
timezone = pytz.timezone(nome_timezone)
else:
timezone = get_timezone(municipio, uf)
def populate_renamed_fields(new, old): def populate_renamed_fields(new, old):
renames = field_renames[type(new)] renames = field_renames[type(new)]
@ -846,9 +833,9 @@ def populate_renamed_fields(new, old):
return (field_type == tipo return (field_type == tipo
and value and not value.tzinfo) and value and not value.tzinfo)
if campo_tempo_sem_timezone('DateTimeField'): if campo_tempo_sem_timezone('DateTimeField'):
value = timezone.localize(value) value = PYTZ_TIMEZONE.localize(value)
if campo_tempo_sem_timezone('TimeField'): if campo_tempo_sem_timezone('TimeField'):
value = value.replace(tzinfo=timezone) value = value.replace(tzinfo=PYTZ_TIMEZONE)
setattr(new, field.name, value) setattr(new, field.name, value)
@ -860,7 +847,7 @@ def roda_comando_shell(cmd):
def get_arquivo_ajustes_pre_migracao(): def get_arquivo_ajustes_pre_migracao():
return DIR_DADOS_MIGRACAO.child( return DIR_DADOS_MIGRACAO.child(
'ajustes_pre_migracao', '{}.sql'.format(sigla_casa)) 'ajustes_pre_migracao', '{}.sql'.format(SIGLA_CASA))
def migrar_dados(apagar_do_legado=False): def migrar_dados(apagar_do_legado=False):
@ -1180,7 +1167,7 @@ def adjust_protocolo_antes_salvar(new, old):
def get_arquivo_resolve_registro_votacao(): def get_arquivo_resolve_registro_votacao():
return DIR_DADOS_MIGRACAO.child( return DIR_DADOS_MIGRACAO.child(
'ajustes_pre_migracao', 'ajustes_pre_migracao',
'{}_resolve_registro_votacao_ambiguo.yaml'.format(sigla_casa)) '{}_resolve_registro_votacao_ambiguo.yaml'.format(SIGLA_CASA))
def get_como_resolver_registro_votacao_ambiguo(): def get_como_resolver_registro_votacao_ambiguo():

19
sapl/legacy_migration_settings.py

@ -1,10 +1,14 @@
import os import os
import re
import pytz
import yaml
from decouple import Config, RepositoryEnv from decouple import Config, RepositoryEnv
from dj_database_url import parse as db_url from dj_database_url import parse as db_url
from sapl.legacy.scripts.exporta_zope.variaveis_comuns import \ from sapl.legacy.scripts.exporta_zope.variaveis_comuns import \
DIR_DADOS_MIGRACAO DIR_DADOS_MIGRACAO
from sapl.legacy.timezonesbrasil import get_timezone
from .settings import * # flake8: noqa from .settings import * # flake8: noqa
@ -43,3 +47,18 @@ NOME_BANCO_LEGADO = DATABASES['legacy']['NAME']
DIR_REPO = Path(DIR_DADOS_MIGRACAO, 'repos', NOME_BANCO_LEGADO) DIR_REPO = Path(DIR_DADOS_MIGRACAO, 'repos', NOME_BANCO_LEGADO)
MEDIA_ROOT = DIR_REPO MEDIA_ROOT = DIR_REPO
# configura timezone de migração
match = re.match('sapl_cm_(.*)', NOME_BANCO_LEGADO)
SIGLA_CASA = match.group(1)
_PATH_TABELA_TIMEZONES = DIR_DADOS_MIGRACAO.child('tabela_timezones.yaml')
with open(_PATH_TABELA_TIMEZONES, 'r') as arq:
tabela_timezones = yaml.load(arq)
municipio, uf, nome_timezone = tabela_timezones[SIGLA_CASA]
if nome_timezone:
PYTZ_TIMEZONE = pytz.timezone(nome_timezone)
else:
PYTZ_TIMEZONE = get_timezone(municipio, uf)
TIME_ZONE = PYTZ_TIMEZONE.zone

Loading…
Cancel
Save