Browse Source

Merge pull request #1017 from interlegis/1014-documentos-travamento

fix #1014 - Desliga indexação ao migrar documentos
pull/1016/head
Luciano Henrique Nunes de Almeida 8 years ago
committed by GitHub
parent
commit
0fc24e69e5
  1. 28
      sapl/legacy/migracao_documentos.py
  2. 4
      sapl/legacy/migration.py

28
sapl/legacy/migracao_documentos.py

@ -4,6 +4,7 @@ import re
import magic import magic
from django.db.models.signals import post_delete, post_save
from sapl.base.models import CasaLegislativa from sapl.base.models import CasaLegislativa
from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa, from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa,
Proposicao) Proposicao)
@ -12,6 +13,8 @@ from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import DocumentoAdministrativo from sapl.protocoloadm.models import DocumentoAdministrativo
from sapl.sessao.models import SessaoPlenaria from sapl.sessao.models import SessaoPlenaria
from sapl.settings import MEDIA_ROOT from sapl.settings import MEDIA_ROOT
from sapl.utils import delete_texto, save_texto
# MIGRAÇÃO DE DOCUMENTOS ################################################### # MIGRAÇÃO DE DOCUMENTOS ###################################################
EXTENSOES = { EXTENSOES = {
@ -160,7 +163,29 @@ def migrar_docs_por_ids(tipo):
tipo.__name__, id, destino)) tipo.__name__, id, destino))
def desconecta_sinais_indexacao():
post_save.disconnect(save_texto, NormaJuridica)
post_save.disconnect(save_texto, DocumentoAcessorio)
post_save.disconnect(save_texto, MateriaLegislativa)
post_delete.disconnect(delete_texto, NormaJuridica)
post_delete.disconnect(delete_texto, DocumentoAcessorio)
post_delete.disconnect(delete_texto, MateriaLegislativa)
def conecta_sinais_indexacao():
post_save.connect(save_texto, NormaJuridica)
post_save.connect(save_texto, DocumentoAcessorio)
post_save.connect(save_texto, MateriaLegislativa)
post_delete.connect(delete_texto, NormaJuridica)
post_delete.connect(delete_texto, DocumentoAcessorio)
post_delete.connect(delete_texto, MateriaLegislativa)
def migrar_documentos(): def migrar_documentos():
# precisamos excluir os sinais de post_save e post_delete para não que o
# computador não trave com a criação de threads desnecessárias
desconecta_sinais_indexacao()
# aqui supomos que uma pasta chamada sapl_documentos está em MEDIA_ROOT # aqui supomos que uma pasta chamada sapl_documentos está em MEDIA_ROOT
# com o conteúdo da pasta de mesmo nome do zope # com o conteúdo da pasta de mesmo nome do zope
# Os arquivos da pasta serão movidos para a nova estrutura e a pasta será # Os arquivos da pasta serão movidos para a nova estrutura e a pasta será
@ -186,3 +211,6 @@ def migrar_documentos():
len(sobrando))) len(sobrando)))
for doc in sobrando: for doc in sobrando:
print(' {}'. format(doc)) print(' {}'. format(doc))
#
# reconexão dos sinais desligados no inicio da migração de documentos
conecta_sinais_indexacao()

4
sapl/legacy/migration.py

@ -453,7 +453,7 @@ class DataMigrator:
call([PROJECT_DIR.child('manage.py'), 'flush', call([PROJECT_DIR.child('manage.py'), 'flush',
'--database=default', '--no-input'], stdout=PIPE) '--database=default', '--no-input'], stdout=PIPE)
disconecta_sinais_indexacao() desconecta_sinais_indexacao()
info('Começando migração: %s...' % obj) info('Começando migração: %s...' % obj)
self._do_migrate(obj) self._do_migrate(obj)
@ -774,7 +774,7 @@ make_with_log.required = foreign_key_required
# DISCONNECT SIGNAL ######################################################## # DISCONNECT SIGNAL ########################################################
def disconecta_sinais_indexacao(): def desconecta_sinais_indexacao():
post_save.disconnect(save_texto, NormaJuridica) post_save.disconnect(save_texto, NormaJuridica)
post_save.disconnect(save_texto, DocumentoAcessorio) post_save.disconnect(save_texto, DocumentoAcessorio)
post_save.disconnect(save_texto, MateriaLegislativa) post_save.disconnect(save_texto, MateriaLegislativa)

Loading…
Cancel
Save