Erros ao atualizar OJS 3.1.2-1 para 3.3.0-6

tenho um problema de upgrade do OJS da versão 3.1.2-1 para a 3.3.0-6. O BD fica todo desconfigurado, e perde-se alguns itens/arquivos das revistas. Segui todos os passos do site PKP do OJS, mas sem sucesso.

1 curtida

@Web,

Lembre-se que toda atualização do OJS requer um certo cuidado.
Faça o backup do banco de dados e dos arquivos.
Antes de realizar a atualização no ambiente de produção, faça a atualização em um ambiente de homologação, pois podem acontecer problema, consequentemente fica mais fácil de restaurar o backup e refazer a atualização.

Detalha melhor o seu cenário? Qual erro que apresenta no processo de atualização?

Qual o banco de dados utilizado: Mysql ou Postgres?

Verifique o Collation do banco e das tabelas e também se o banco já está em UTF8, pois se estiver em outro formato terá que fazer alguns procedimentos antes de realizar atualização.

Verifique alguns dos post aqui no fórum sobre atualização para versão 3.3 e veja se tem algo que possa ajudá-lo.

1 curtida

Olá Diego.
Sim, estamos fazendo a atualização em ambiente de homologação, usando a cópia do BD original, e realizamos todas as alterações nessa cópia do BD (de MyISAM para InnoDB, latin1 para utf-8), usamos MySQL, com o driver mysqli, enfim, já seguimos todos os passos para a migração, e ao tentar atualizar, dá erros no BD, principalmente na tabela email_templates_data, dizendo que não foi possível criar o campo “email_id” pois já existe. Acontece que, antes de fazer, não existia esse campo nessa tabela, e ao tentar atualizar, ele mesmo cria, e diz que tá duplicado. E fica em loop isso (se vou lá na tabela e excluo o email_id, ao tentar atualizar, cai no mesmo erro).
Já não sei mais o que pode ser feito, estou nisso já há uns 6 meses, tentando de todas as formas, e não vai.
Se eu faço uma instalação do zero com a nova versão 3.3.0-6, usando um BD zerado, daí ele funciona. Mas ao tentar apontar para o meu BD atual, dá erros de caracteres nas acentuações das revistas, e algumas revistas não deixa entrar, dando erro HTTP 500.
Tá bem complicado tentarmos usar o nosso BD da versão 3.1.2-1 na nova versão do OJS, 3.3.0-6.
Se puderem nos ajudar, agradeço. Pois não sei mais o que fazer.

1 curtida

@Web,

o processo de atualização do OJS é um pouco oneroso. Toda vez que executar o script de atualização do OJS e se der algum erro, você tem que realizar o seguinte procedimento:

  1. anotar o erro e procurar a solução na comunidade, geralmente no fórum do PKP (https://forum.pkp.sfu.ca) tem informações valiosas, aqui no fórum do Ibict ou na web em geral também;
  2. restaurar o banco para versão original, antes de realizar uma nova tentativa de atualização.
    IMPORTANTE: Toda vez que acontecer um problema na atualização, esse passo é obrigatório.
    Observação: Talvez seja também necessário restaurar a pasta de arquivos, pois às vezes o script de atualização também modificar os diretórios desta pasta;
  3. após o banco restaurado, aplicar as soluções encontradas no banco e faça um backup deste banco;
  4. executar novamente o script de atualização. Se der algum outro tipo de problema, deverá ser feito todo o procedimento novamente, assim até a atualização seja concluída com sucesso.

Provavelmente este problema está acontecendo, pois tentou-se atualizar o banco em cima de uma atualização malsucedida, aí infelizmente vai entrar em loop mesmo.

Refaça a atualização do zero, seguindo as recomendações acima, juntamente com as orientações indicadas pela PKP.

Dica: Atualize o OJS para versão 3.2.1-4.
Depois você tenta atualizar para 3.3.0-6. Porém, sugiro que você espere a versão 3.3.1 ser lançada, pois a versão 3.3 estará mais estável.
Dê uma olhada no caderno de lançamento da versão 3.3 OJS/OMP/OPS 3.3 Release Notebook - OJS/OMP/OPS , note que teve mudanças consideráveis, especialmente o OJS abandonou a interface de banco ADODB e substituiu pelo Laravel’s Illuminate\Database e entre outras coisas.

1 curtida

Olá Diego.

Fizemos o que foi recomendado, indo pra versão 3.2.1-4 primeiro, e mesmo assim, dá erros no BD, mesmo tendo alterado para InnoDB e UTF8.

Segue os 2 erros na sequência que deram:
1- Ocorreu um erro de banco de dados: Data too long for column ‘setting_value’ at row 2

E mesmo clicando em Atualizar o Sistema, na sequência apareceu esse próximo erro:
2- Ocorreu um erro de banco de dados: Table ‘REVISTAS_TESTE.email_templates_data’ doesn’t exist

PS: o que é estranho é que, antes de iniciarmos a atualização, verificamos no BD e já existia essa tabela “email_templates_data”, e por que é que dá esse erro que a tabela não existe?!? Se estava lá antes?!? Pode ser algum processo na hora de atualizar que ele acaba excluindo essa tabela?!?

OBS: falei já antes que está bem complicado de fazer essa atualização de versão, mesmo já tendo pesquisado nos fórums do IBICT e do próprio PKP do OJS, e seguindo todas as orientações de alterações nas config do BD, e mesmo assim, o negócio não vai pra frente.

No aguardo,

Recomendo fortemente, qua a atualização seja feita via SSH em Linux/Apache, assim com tudo via código você terá melhor possibilidade de minimizar erros, pois sempre que tentávamos via WEB, da erro. Via SSH você acompanha cada passo e saberá exatamente onde estará o erro.
Via SSH execute

php tools/upgrade.php upgrade

Ressaltando que quem irá fazer a atualização deve conhecer dos comandos SSH e Linux, para melhor performance do procedimento, ressaltando que o Backup da database, diretórios files e public são imprescindíveis.

1 curtida

Olá, já fizemos dessa forma também, e deu na mesma, mesmos erros de BD.

@Web tenta migrar paulatinamente as versões, da atual para 3.1.2.4 e depois 3.2.1.4 e por fim a versão atual.
Outra coisa é recriar a tabela faltante e proceder a instalação