====== Atualização para IFRN/16.1 ======
===== Passo 1 =====
Dados gerais
^ ^ ^
|Branch Criada no IFCE|%%atualiza_suap_ifrnmaster%%|
|Tag Base do IFRN |16.1|
|Data de início da atualização|22/02/2016|
|Data de fim da atualização| - |
|Tag Criada ao Final|ifce7.0 (22/02/2016)|
|Tag Antes da atualização|ifce6.0|
|OBS|Foi feita atualização do postgresql 9.3 para 9.4|
Pacotes (/opt/suap/deploy/requirements.txt)
^ PACOTE ^ VERSÃO ^ - ^ PACOTE ^ VERSÃO ^
| Django | 1.7.7 | - | six | 1.9.0 |
| django-ckeditor | 4.4.7 | - | django_extensions | 1.2.5 |
| django-localflavor | 1.0 | - | django_pagination | 1.0.7 |
| cython | 0.19.2 | - | feedparser | 5.1.3 |
| gunicorn | 18.0 | - | ipdb | 0.8 |
| mechanize | 0.2.5 | - | Pillow | 2.2.1 |
| psycopg2 | 2.5.1 | - | pypdf | 1.13 |
| pymssql | 2.0.1 | - | python-ldap | 2.3.13 |
| python-dateutil | ? | - | reportlab | 2.5 |
| suds | 0.4 | - | xlwt | 0.7.5 |
| xlrd | 0.9.2 | - | xlutils | 1.7.1 |
| simplejson | 3.3.1 | - | django-tables2 | 0.16.0 |
| django-tables2-reports | 0.0.10 | - | qrcode | 4.0.4 |
| pisa | 3.0.33 | - | docutils | 0.11 |
| sphinx | 1.2.2 | - | pycrypto | ? |
| pylint | ? | - | djangorestframework | 2.4.4 |
| django-rest-swagger | 0.2.0 | - | python-magic | ? |
-----------------------
Use o comando pip install -r deploy/requirements.txt para instalar a partir do arquivo gerado pelo pip freeze estável deles.
===== Passo 2 =====
Criar a tag %%atualiza_suap_ifrnmaster2%%
git checkout -b atualiza_suap_ifrnmaster2
git remote add suapifrn http://gitlab.ifrn.edu.br/cosinf/suap.git
-----------------------
===== Passo 3 =====
Baixar as atualizações do IFRN
git fetch suapifrn
Username for 'https://gitlab.ifrn.edu.br':\\
Password for 'https://ifce@gitlab.ifrn.edu.br': \\
-----------------------
===== Passo 4 =====
Saída do fetch:
From http://gitlab.ifrn.edu.br/cosinf/suap
* [new branch] AutocompleteWidget-ext_combo_template -> suapifrn/AutocompleteWidget-ext_combo_template
* [new branch] Parametrizacao_Referencia_Instituicao -> suapifrn/Parametrizacao_Referencia_Instituicao
* [new branch] ae-1 -> suapifrn/ae-1
* [new branch] ae-2 -> suapifrn/ae-2
* [new branch] ae-ajuste-rel-transp -> suapifrn/ae-ajuste-rel-transp
* [new branch] ae-coordenador-4 -> suapifrn/ae-coordenador-4
* [new branch] ae-reservas -> suapifrn/ae-reservas
* [new branch] ajuste_layout_carteira_funcional -> suapifrn/ajuste_layout_carteira_funcional
* [new branch] ajustes_avaliacao_avaliador -> suapifrn/ajustes_avaliacao_avaliador
* [new branch] almoxarifado-debug -> suapifrn/almoxarifado-debug
* [new branch] almoxarifado_valor_medio -> suapifrn/almoxarifado_valor_medio
* [new branch] app_pesquisa -> suapifrn/app_pesquisa
* [new branch] app_pesquisa_testes -> suapifrn/app_pesquisa_testes
* [new branch] app_seguro_aula_campo -> suapifrn/app_seguro_aula_campo
* [new branch] auditoria-cgu -> suapifrn/auditoria-cgu
* [new branch] avaliacao_error -> suapifrn/avaliacao_error
* [new branch] central-servicos-indicador-tempo-atendimento-uo -> suapifrn/central-servicos-indicador-tempo-atendimento-uo
* [new branch] central-servicos-novos-recursos -> suapifrn/central-servicos-novos-recursos
* [new branch] central-servicos-remover-base-conhecimento -> suapifrn/central-servicos-remover-base-conhecimento
* [new branch] chamado1057 -> suapifrn/chamado1057
* [new branch] chamado1573 -> suapifrn/chamado1573
* [new branch] chamado1708 -> suapifrn/chamado1708
* [new branch] chamado1719 -> suapifrn/chamado1719
* [new branch] chamado1746 -> suapifrn/chamado1746
* [new branch] chamado_13350 -> suapifrn/chamado_13350
* [new branch] compras -> suapifrn/compras
* [new branch] comum-midia -> suapifrn/comum-midia
* [new branch] correcao-cnpq_importar -> suapifrn/correcao-cnpq_importar
* [new branch] corrigir-transacoes -> suapifrn/corrigir-transacoes
* [new branch] dev_controle_papel -> suapifrn/dev_controle_papel
* [new branch] dev_estagio_probatorio -> suapifrn/dev_estagio_probatorio
* [new branch] dev_titular -> suapifrn/dev_titular
* [new branch] django18 -> suapifrn/django18
* [new branch] docs-adm-central-servicos-02 -> suapifrn/docs-adm-central-servicos-02
* [new branch] docs-adm-telefonia-01 -> suapifrn/docs-adm-telefonia-01
* [new branch] docs_pesquisa -> suapifrn/docs_pesquisa
* [new branch] edu-admin-diario -> suapifrn/edu-admin-diario
* [new branch] edu-ajuste-boletim -> suapifrn/edu-ajuste-boletim
* [new branch] edu-ajuste-colacao-grau -> suapifrn/edu-ajuste-colacao-grau
* [new branch] edu-ajuste-integralizacao -> suapifrn/edu-ajuste-integralizacao
* [new branch] edu-ajuste-migracao -> suapifrn/edu-ajuste-migracao
* [new branch] edu-ajuste-minicurso -> suapifrn/edu-ajuste-minicurso
* [new branch] edu-ajuste-no-form-prof -> suapifrn/edu-ajuste-no-form-prof
* [new branch] edu-ajustes-alessandro -> suapifrn/edu-ajustes-alessandro
* [new branch] edu-ajustes-hoje -> suapifrn/edu-ajustes-hoje
* [new branch] edu-ajustes-usabilidade-diario -> suapifrn/edu-ajustes-usabilidade-diario
* [new branch] edu-ajustes0508 -> suapifrn/edu-ajustes0508
* [new branch] edu-alteracao-estrutura -> suapifrn/edu-alteracao-estrutura
* [new branch] edu-alunos-dados-incompletos -> suapifrn/edu-alunos-dados-incompletos
* [new branch] edu-avaliacao-integrada -> suapifrn/edu-avaliacao-integrada
* [new branch] edu-bug-transferencia-diario -> suapifrn/edu-bug-transferencia-diario
* [new branch] edu-chamado-11302 -> suapifrn/edu-chamado-11302
* [new branch] edu-chamado-11662 -> suapifrn/edu-chamado-11662
* [new branch] edu-commando-notificacao-pendencias -> suapifrn/edu-commando-notificacao-pendencias
* [new branch] edu-componente-dinamico -> suapifrn/edu-componente-dinamico
* [new branch] edu-coordenador-renovacao-matricula -> suapifrn/edu-coordenador-renovacao-matricula
* [new branch] edu-correcao-bug -> suapifrn/edu-correcao-bug
* [new branch] edu-correcao-index -> suapifrn/edu-correcao-index
* [new branch] edu-correcao-migracao -> suapifrn/edu-correcao-migracao
* [new branch] edu-correcao-prorrogacao-etapa -> suapifrn/edu-correcao-prorrogacao-etapa
* [new branch] edu-correcao-registrar-chamada -> suapifrn/edu-correcao-registrar-chamada
* [new branch] edu-data-prova -> suapifrn/edu-data-prova
* [new branch] edu-diretorios-documentos -> suapifrn/edu-diretorios-documentos
* [new branch] edu-dispensar-enade -> suapifrn/edu-dispensar-enade
* [new branch] edu-entregar-etapa -> suapifrn/edu-entregar-etapa
* [new branch] edu-estagios -> suapifrn/edu-estagios
* [new branch] edu-fotos-lote -> suapifrn/edu-fotos-lote
* [new branch] edu-horario-aula-aluno -> suapifrn/edu-horario-aula-aluno
* [new branch] edu-importar-componentes -> suapifrn/edu-importar-componentes
* [new branch] edu-indicadores -> suapifrn/edu-indicadores
* [new branch] edu-libreoffice -> suapifrn/edu-libreoffice
* [new branch] edu-master -> suapifrn/edu-master
* [new branch] edu-minicursos -> suapifrn/edu-minicursos
* [new branch] edu-painel-controle -> suapifrn/edu-painel-controle
* [new branch] edu-processo-seletivo -> suapifrn/edu-processo-seletivo
* [new branch] edu-prorrogaca-lancamento-etapa -> suapifrn/edu-prorrogaca-lancamento-etapa
* [new branch] edu-questionarios -> suapifrn/edu-questionarios
* [new branch] edu-recuperacao-bimestral -> suapifrn/edu-recuperacao-bimestral
* [new branch] edu-relatorio-alunos -> suapifrn/edu-relatorio-alunos
* [new branch] edu-remocao-diario -> suapifrn/edu-remocao-diario
* [new branch] edu-remover-disabled-prof -> suapifrn/edu-remover-disabled-prof
* [new branch] edu-requisitos-conclusao -> suapifrn/edu-requisitos-conclusao
* [new branch] edu-retore -> suapifrn/edu-retore
* [new branch] edu-segunda-via-diploma -> suapifrn/edu-segunda-via-diploma
* [new branch] edu-sugestoes-matheus -> suapifrn/edu-sugestoes-matheus
* [new branch] edu-timetables -> suapifrn/edu-timetables
* [new branch] edu-transferencia-turma -> suapifrn/edu-transferencia-turma
* [new branch] edu_atividades_docentes -> suapifrn/edu_atividades_docentes
* [new branch] edu_nome_social -> suapifrn/edu_nome_social
* [new branch] edu_retirar_seguro_aula_campo -> suapifrn/edu_retirar_seguro_aula_campo
* [new branch] elemento-despesa -> suapifrn/elemento-despesa
* [new branch] envio_protocolo -> suapifrn/envio_protocolo
* [new branch] eriton -> suapifrn/eriton
* [new branch] error_pesquisa -> suapifrn/error_pesquisa
* [new branch] etiqueta_protocolo -> suapifrn/etiqueta_protocolo
* [new branch] eventos -> suapifrn/eventos
* [new branch] files -> suapifrn/files
* [new branch] financeiro-importacao -> suapifrn/financeiro-importacao
* [new branch] financeiro-ir_dirf -> suapifrn/financeiro-ir_dirf
* [new branch] formato_valor_empenho -> suapifrn/formato_valor_empenho
* [new branch] frota-avaliacao -> suapifrn/frota-avaliacao
* [new branch] frota-correcao -> suapifrn/frota-correcao
* [new branch] frota_081215 -> suapifrn/frota_081215
* [new branch] frota_ajustes -> suapifrn/frota_ajustes
* [new branch] google_apps_sso -> suapifrn/google_apps_sso
* [new branch] gt-patrimonio -> suapifrn/gt-patrimonio
* [new branch] i2146 -> suapifrn/i2146
* [new branch] ifpb_edu_recuperacao -> suapifrn/ifpb_edu_recuperacao
* [new branch] ifpb_importador -> suapifrn/ifpb_importador
* [new branch] impressao_processo -> suapifrn/impressao_processo
* [new branch] index -> suapifrn/index
* [new branch] ir_dirf -> suapifrn/ir_dirf
* [new branch] issue_2196 -> suapifrn/issue_2196
* [new branch] issue_2226 -> suapifrn/issue_2226
* [new branch] layout -> suapifrn/layout
* [new branch] layout-index -> suapifrn/layout-index
* [new branch] layout-saude -> suapifrn/layout-saude
* [new branch] master -> suapifrn/master
* [new branch] middleware-servidor-sem-setor -> suapifrn/middleware-servidor-sem-setor
* [new branch] move_arquivos -> suapifrn/move_arquivos
* [new branch] notificar-grupo -> suapifrn/notificar-grupo
* [new branch] nup -> suapifrn/nup
* [new branch] orcamento-descentralizacao -> suapifrn/orcamento-descentralizacao
* [new branch] patrimonio -> suapifrn/patrimonio
* [new branch] patrimonio-elemento-despesa -> suapifrn/patrimonio-elemento-despesa
* [new branch] patrimonio-novo-fluxo_teste -> suapifrn/patrimonio-novo-fluxo_teste
* [new branch] patrimonio-plano-contas -> suapifrn/patrimonio-plano-contas
* [new branch] patrimonio_docs -> suapifrn/patrimonio_docs
* [new branch] pesquisa_180116 -> suapifrn/pesquisa_180116
* [new branch] pesquisa_281215 -> suapifrn/pesquisa_281215
* [new branch] pesquisa_novo_app -> suapifrn/pesquisa_novo_app
* [new branch] pessoa_interessada_setor -> suapifrn/pessoa_interessada_setor
* [new branch] planejamento-ajuste -> suapifrn/planejamento-ajuste
* [new branch] portaria_2 -> suapifrn/portaria_2
* [new branch] processo_eletronico -> suapifrn/processo_eletronico
* [new branch] processo_recaptcha -> suapifrn/processo_recaptcha
* [new branch] progressao_bug -> suapifrn/progressao_bug
* [new branch] projeto_suapdev -> suapifrn/projeto_suapdev
* [new branch] projetos_edital_cultura -> suapifrn/projetos_edital_cultura
* [new branch] projetos_extensao -> suapifrn/projetos_extensao
* [new branch] projetos_recurso -> suapifrn/projetos_recurso
* [new branch] protocolo-melhorias -> suapifrn/protocolo-melhorias
* [new branch] protocolo_formato_numero_15_4 -> suapifrn/protocolo_formato_numero_15_4
* [new branch] protocolo_interessado_setor -> suapifrn/protocolo_interessado_setor
* [new branch] protocolo_interessado_setor2 -> suapifrn/protocolo_interessado_setor2
* [new branch] reserva-sala-ajustes -> suapifrn/reserva-sala-ajustes
* [new branch] reserva-sala-ajustes-2 -> suapifrn/reserva-sala-ajustes-2
* [new branch] reserva-sala-ajustes-3 -> suapifrn/reserva-sala-ajustes-3
* [new branch] reserva-sala-tarefa-1815 -> suapifrn/reserva-sala-tarefa-1815
* [new branch] rh_ajuste_avaliador -> suapifrn/rh_ajuste_avaliador
* [new branch] rh_formatacao_moeda_rubrica -> suapifrn/rh_formatacao_moeda_rubrica
* [new branch] rh_solicitacao_cracha -> suapifrn/rh_solicitacao_cracha
* [new branch] rsc_ajuste_pagamento -> suapifrn/rsc_ajuste_pagamento
* [new branch] rsc_bug_avaliadores_extras -> suapifrn/rsc_bug_avaliadores_extras
* [new branch] rsc_correcao_qtd_item -> suapifrn/rsc_correcao_qtd_item
* [new branch] rsc_filtro_avaliacao_pagamento -> suapifrn/rsc_filtro_avaliacao_pagamento
* [new branch] saude-2 -> suapifrn/saude-2
* [new branch] saude-3 -> suapifrn/saude-3
* [new branch] saude-4 -> suapifrn/saude-4
* [new branch] saude-ajustes -> suapifrn/saude-ajustes
* [new branch] saude-enfermagem -> suapifrn/saude-enfermagem
* [new branch] saude-nutricao -> suapifrn/saude-nutricao
* [new branch] saude-odontologia -> suapifrn/saude-odontologia
* [new branch] saude_170216 -> suapifrn/saude_170216
* [new branch] scroll-infinito-autocomplete -> suapifrn/scroll-infinito-autocomplete
* [new branch] servidor_sem_setor -> suapifrn/servidor_sem_setor
* [new branch] sica_ifrn -> suapifrn/sica_ifrn
* [new branch] simple_tag -> suapifrn/simple_tag
* [new branch] site -> suapifrn/site
* [new branch] squash-migrations -> suapifrn/squash-migrations
* [new branch] suap-autoenv -> suapifrn/suap-autoenv
* [new branch] suap-bugs -> suapifrn/suap-bugs
* [new branch] suap-gestao -> suapifrn/suap-gestao
* [new branch] suap-gestao-doc-visao2 -> suapifrn/suap-gestao-doc-visao2
* [new branch] suap-midia1 -> suapifrn/suap-midia1
* [new branch] tarefa-1113 -> suapifrn/tarefa-1113
* [new branch] tarefa-2022 -> suapifrn/tarefa-2022
* [new branch] tarefa_1131 -> suapifrn/tarefa_1131
* [new branch] tarefa_1497 -> suapifrn/tarefa_1497
* [new branch] test-gitlab -> suapifrn/test-gitlab
* [new branch] test-suap -> suapifrn/test-suap
* [new branch] teste -> suapifrn/teste
* [new branch] testes-gitlab -> suapifrn/testes-gitlab
* [new branch] titular_correcao_tamanho_campos -> suapifrn/titular_correcao_tamanho_campos
* [new branch] treinamento_suap -> suapifrn/treinamento_suap
* [new branch] unaccent -> suapifrn/unaccent
* [new tag] 16.1 -> 16.1
-----------------------
===== Passo 5 =====
Após corrigir os conflitos, comitar e enviar a branch
git commit -am "resolver conflitos"
git push origin atualiza_suap_ifrnmaster
---------------
===== Passo 6 =====
sudo pip install xhtml2pdf
---------------
===== Passo 7 =====
sudo python manage.py sync
===== Passo 8 ======
Problemas:
django.db.utils.ProgrammingError: relation "progressoes_avaliacaomodelo" already exists
Solução:
drop table progressoes_avaliacaoservidorcriterio;
drop table progressoes_avaliacaomodelocriterio;
drop table progressoes_avaliacaomodelo;
drop table progressoes_avaliacaoservidor;
===== Passo 9 =====
Rodar:
python manage.py sync
===== Passo 10 =====
Comentado a linha na migration %%edu/migrations/0064_auto_20151127_1440.py%%:
# migrations.RunPython(editar_atividade_complementar_deferida)
===== Passo 11 =====
progressoes.0001_initial
KeyError: ('progressoes', u'avaliacaomodelo')
Deletada tabelas de AvalicaoModelo e referências:
%%progressoes_avaliacaomodelo%%
%%progressoes_avaliacaomodelocriterio%%
===== Passo 11 =====
Cnpq:
File %%"/opt/suap/cnpq/migrations/0012_auto_20150811_1624.py"%%, line 11, in migrate
registro_patente.curriculo = registro_patente.software_set.all()[0].curriculo
Solução:
Adicionado coluna (tipo timestamp with zone) manualmente a tabela
===== Passo 12 =====
%%migration projetos.0046_auto_20151001_1152 deve ficar antes da projetos.0040_atualizar_coordenador_projeto%%
Inserir linha da migration no Banco para projetos %%001_initial%%
%%Adicionada coluna {monitor_id integer null} na tabela projetos_projeto%%
%%Remover coluna monitor_id (em produção não fazer)%%
Alternativa, mover o código da 46 para a 40 e comentar a 46
===== Passo 13 =====
%%projetos.0040_atualizar_coordenador_projeto%%
Cannot ALTER TABLE "projetos_projeto" because it has pending trigger events
Comentada a linha que dava o erro.
===== Passo 14 =====
Migration 001_initial do módulo de clipping.
Rodar seguinte sql:
Insert into django_migrations (app,name,applied) VALUES ('clipping','0001_initial','2016-04-04 08:00:00.0000000-03');
===== Passo 15 =====
Problema ao executar migration %%0029_auto_20160107_0911.py%%:
Deve-se remover a view: %%vw_professor_sisproen%% e depois de rodadas as migrations cria-lá novamente rodando o seguinte script:
CREATE OR REPLACE VIEW vw_professor_sisproen AS
SELECT pessoa_fisica.pessoa_ptr_id AS id,
pessoa_fisica.cpf,
pessoa_fisica.rg,
to_char(pessoa_fisica.nascimento_data::timestamp with time zone, 'DD-MM-YYYY'::text) AS data_nascimento,
pessoa_fisica.sexo,
pessoa_fisica.username AS matricula_siape,
pessoa.nome,
pessoa.email_secundario AS email,
pessoa.excluido
FROM edu_professor
JOIN pessoa_fisica ON edu_professor.pessoa_fisica_id = pessoa_fisica.pessoa_ptr_id
JOIN pessoa ON pessoa_fisica.pessoa_ptr_id = pessoa.id
ORDER BY pessoa.nome;
ALTER TABLE vw_professor_sisproen
OWNER TO suap;
Remover também a view: %%vw_cafe_conta%% e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_conta AS
SELECT pf.cpf,
s.matricula,
au.password AS senha,
'md5' AS algoritmo,
'IFCE' AS dominio
FROM servidor s
LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id
LEFT JOIN auth_user au ON au.id = pf.user_id
LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id
WHERE p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text;
ALTER TABLE vw_cafe_conta
OWNER TO suap;
Remover também a view: %%vw_cafe_email%% e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_email AS
SELECT pf.cpf,
p.email_secundario
FROM edu_aluno e,
pessoa_fisica pf,
pessoa p
WHERE e.situacao_id = 1 AND e.pessoa_fisica_id = pf.pessoa_ptr_id AND p.id = pf.pessoa_ptr_id AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL
UNION
SELECT pf.cpf,
p.email AS email_secundario
FROM servidor s
LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id
LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id
WHERE s.excluido = false AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text;
ALTER TABLE vw_cafe_email
OWNER TO suap;
Remover também a view: %%vw_cafe_identificacao%% e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_cafe_identificacao AS
SELECT p.nome,
pf.cpf,
pf.nascimento_data
FROM edu_aluno e,
pessoa_fisica pf,
pessoa p
WHERE e.situacao_id = 1 AND e.pessoa_fisica_id = pf.pessoa_ptr_id AND p.id = pf.pessoa_ptr_id AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text AND p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL
UNION
SELECT p.nome,
pf.cpf,
pf.nascimento_data
FROM servidor s
LEFT JOIN pessoa_fisica pf ON s.funcionario_ptr_id = pf.pessoa_ptr_id
LEFT JOIN pessoa p ON pf.pessoa_ptr_id = p.id
WHERE p.email_secundario::text <> ''::text AND p.email_secundario IS NOT NULL AND pf.cpf::text <> ''::text AND pf.cpf::text <> ' . . - '::text AND pf.cpf::text <> '___.___.___-__'::text;
ALTER TABLE vw_cafe_identificacao
OWNER TO suap;
Remover também a view: %%vw_consulta_processo_servidor%% e depois de rodadas as migrations, executar:
CREATE OR REPLACE VIEW vw_consulta_processo_servidor AS
SELECT p.data_cadastro,
p.numero_processo,
p.numero_documento,
p.assunto,
s.matricula,
s.email_institucional,
s.email_siape
FROM protocolo_processo p,
servidor s
WHERE p.pessoa_interessada_id = s.funcionario_ptr_id;
ALTER TABLE vw_consulta_processo_servidor
OWNER TO suap;
===== Passo 16: =====
Problema ao executar migration %%rh.0031_auto_20160321_1021.py%%:
ProgrammingError: permission denied to create extension "unaccent"
HINT: Must be superuser to create this extension. ("CREATE EXTENSION unaccent;")
Solução: realizar o comando na máquina onde o servidor do postgre estiver instalado.
sudo apt-get install postgresql-contrib-9.4
depois pode-se criar manualmente pelo pg admin
CREATE EXTENSION IF NOT EXISTS unaccent;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
SELECT unaccent('unaccent', upper('ródrigo'))
depois ir na árvore em extensions e escolher unaccent e %%pg_trgm%% (fazer isso com o usuário postgres)
===== passo 17 =====
django.db.utils.OperationalError:
cannot ALTER TABLE "projetos_projeto" because it has pending trigger events
===== passo 18 =====
Problema com usuário sem nome na tabela %%pessoa_física%% (first name e last name)
Remover os seguintes usuários da tabela de grupos e usuários:
DELETE FROM auth_user_groups
WHERE user_id = 4055 OR user_id = 4056 OR user_id = 67; -- (usuários fantasmas da Geila, Mariana, Neila)
Select para saber os nomes fantasmas
SELECT *
from auth_user
where username !~* '[0-9]+' and
(first_name is null or first_name = '') and (last_name is null or last_name = '') order by id
===== passo 19 =====
Urls
Modificado arquivo patrimonio/urls.py
As urls de detalhamento de categoria:
(r'^detalhamento_categoria/(?P(\d+[.])?\d+([.]\d+)?)/(?P\d+)/$', 'total_atual_categoria'),
(r'^detalhamento_categoria/(?P(\d+[.])?\d+([.]\d+)?)/(?P\d+)/(?P\d+)/$', 'total_atual_categoria'),
ERRO: coluna %%cnpq_curriculovittaelattes.data_extracao%% não existe
"edu_situacaomatricula_descricao_key"
DETAIL: Key (descricao)=(Certificado ENEM) already exists
remover a constraint para ordenar depois coloca-la de volta
ALTER TABLE edu_situacaomatricula
ADD CONSTRAINT edu_situacaomatricula_descricao_key UNIQUE(descricao);
update edu_situacaomatricula set descricao = 'Formado' where id = 19
Could not load edu.SituacaoMatriculaPeriodo(pk=21): duplicate key value violates unique constraint %%"edu_situacaomatriculaperiodo_descricao_key"%%
remover a constraint para ordenar depois coloca-la de volta
ALTER TABLE edu_situacaomatriculaperiodo
ADD CONSTRAINT edu_situacaomatriculaperiodo_descricao_key UNIQUE(descricao);
UPDATE edu_situacaomatriculaperiodo
SET descricao= 'Intercâmbio'
WHERE id = 24;
Gunicorn deve ficar com a sintaxe do master atual, correspondente a versão instalada na máquina de produção
[Errno 2] No such file or directory: %%'/opt/suap/rh/arquivos_siape/'%%
OSError at %%/rh/upload_arquivos_extrator/%%
Mkdir dos dois diretorios
depois dar um chmod a+w para as permissoes
MultiValueDictKeyError at %%/admin/planejamento/acaoproposta/3/change/%%
Trocar
meta_id = self.request.GET['meta']
Por
meta_id = self.request.GET.get('meta')
Importar alunos
Erro: File "/opt/suap/edu/q_academico.py", line 486, in importar_alunos
novo_aluno.definir_ano_let_prev_conclusao()
File "/opt/suap/edu/models.py", line 4647, in definir_ano_let_prev_conclusao
modalidade_id = self.curso_campus.modalidade.id
AttributeError: 'NoneType' object has no attribute 'id'
Solucao: Não havia o preenchimento da coluna %%modalidade_id%%, na tabela de cursos (edu_cursocampos) pois os valores não eram trazidos corretamente do Q academico, é necessario inserir na base as seguintes modalidade bem como subir a correção do codigo:
INSERT INTO edu_modalidade( id, descricao, nivel_ensino_id)
VALUES (0, 'Sem modalidade', null), (18, 'Concomitante', 3), (19, 'Bacharelado', 3), (20, 'Propedêutico', 2);
Importar SIAFI
Alterar a verificação com .REF para .ref e .TXT por .txt
Duplicidade financeiro_classificacaoinstitucional apagar
Adicionar os dois ultimos parameotrs no arquivo de layout
Passar None ao invés de IT-DA-CONTRATACAO no metodo getItens