Atualização OJS 3

Boa tarde,
As coisas ficaram um pouco melhores, depois da atualização da versão 3.0.1.
Consegui migrar tudo da versão 2.4.8 para esta nova versão, porém os arquivos PDF não sao reconhecidos para download. Fiz uma varrição pela rede, com algumas pesguntas, mas nada de conclusivo.
Aparece este erro:
PDF.js v1.0.907 (build: e9072ac)
Mensagem: stream must have data
Espero que as soluções de erros do sistema evoluam rapidamente para que possa colocar em produção.
Att
Augusto

Olá, talvez esse site possa te ajudar na migração do OJS para a versão 3.0
inovadordigital.com/ojs

Bom dia!
Resolvida a questão da migração para a versão 3, agora com os patchs inclusos na versão 3.0.2, apenas precisei aplicar o patch do postgres, que trata a questão do serial ID faltante.
Abs

Oi, esse patch do postgres é o arquivo postgresql-serials.diff?
Sabe me dizer qual o comando que eu dou pra rodar esse arquivo e em qual diretório ele deve estar?

att
Adriano Moreno

Boa tarde Adriano,
Este patch foi aplicado na pasta onde foi instalado o ojs.
…/www/ojs-3.0.2/# patch -p1 < nomedoarquivo.patch
Isso deve funcionar.
Att
Augusto

1 curtida

Oi Augusto, estou tendo outro problema agora.
A coluna context_id das tabelas plugin_settings e section_editors
e a coluna submission_id da tabela edit_decisions estão vazias.
O que são essas colunas?

Bom dia Adriano,
Apenas certificando, seu banco de dados é o postgres, correto? Este patch que você comentou é para o postgres …para corrigir a questão do seria_id e outras pequenas coisinha.

Vou tentar passar minha longa experiência de instalação (desde 2002 usando o ojs), mas não sou da equipe de desenvolvimento OJS, ok?

Faça tudo em uma base limpa, para não perder nada o antigo:
Você tem que fazer um dump da base antiga (guarda ela)
Entre na pasta do ojs que descompactou, aplica antes o patch, copia o config.inc.php da versão antiga, bem como toda a pasta public, para a nova e mude o parâmetro de Installed = On para Off

Mude os parâmetros de usuário, senha, nome do banco novo neste arquivo para não alterar a base em produção.
Crie uma pasta para submissions, com permissões de escrita para www:www, copie tudo da pasta submissions antiga para ela (cp não resolve) faz um tar -cvzf e depois um tar -xvzf para a nova pasta

Copie a pasta public do ojs antigo para o novo:
cp -R public …/ojs-3.0.2/

Crie um banco novo, restaure do dump que fez do banco em produção

Faça um upgrade para a nova versão:
ojs-3.0.2 # php tools/upgrade.php upgrade

No meu caso, veio tudo ok, entrei na interface administrativa, estavam todos lá, inclusive submissões ainda não encaminhadas.

Caso dê algum problema com as tabelas, cria uma instalação limpa, faz um dump desta instalação, depois faz toda a instalação como anteriormente comentei, depois voltaria este sql da instalação limpara para corrigir possíveis tabelas faltantes

Instalação limpa:
php tools/install.php (siga o modo guiado)
Faça um dump deste banco limpo que criou.

Acesso o banco novo, faça um restore do banco antigo para o novo
psql seerojsdbnew
$\i Backup-seerojsdatabase-27-04-2017-02:00:00.sql

Lembra do dump do banco novo? Depois de restaurado todos os dados do banco antigo, volte ele pois tem algumas tabelas que no antigo não trazem (provavelmente estas que você questiona)

Vai dar um monte de error de chaves duplicadas (é assim mesmo).
Não sei se ajudei muito, mas tenta aí e depois retorna.
Abraços
Augusto Torres
Analista de Suporte Computacional
CLE/UNICAMP

1 curtida

Vou tentar essa alternativa.
Preenchi com número sequenciais essas colunas e com 0 a coluna de submission_id e consegui finalizar a instalação, mas o resultado ficou um pouco ruim. O sistema aparentemente não está funcionando bem. Vou fazer como você falou e retorno aqui quando finalizar.

Muito obrigado pela sua colaboração.

Boa tarde,

Estou tendo o mesmo problema do usuário Augusto Torres.
Seguinte mensagem ao tentar abrir arquivos:

PDF.js v1.5.188 (build: 0e2d50f)
Mensagem: stream must have data

Vocês possuem a solução para este problema?

Obrigado,

Victor Tavares.

Boa tarde Vitor,
Você fez como citei acima?
Você está migrando ou iniciando desde o zero com o OJS3?
Att
Augusto

Boa tarde Augusto,

Eu migrei os dados usando upgrade padrão.

Até mais,

Victor

Estou tendo o mesmo problema com os pdfs. A atualização não apresentou nenhum erro, porém quando clico para baixar qualquer pdf da a mesma msg de erro.

Verifiquem se o caminho para o diretório onde estão os arquivos no servidor está correto no config_inc.php e que o servidor Web tem acesso para leitura dos mesmos.

Geralmente é uma destas duas coisas que impedem o acesso aos PDFs.

quando atualizar da versão 3.0.2 pra 3.1.0 tb vai precisar aplicar o mesmo patch

postgresql-serials.diff

diff --git a/lib/pkp/lib/adodb/adodb-datadict.inc.php b/lib/pkp/lib/adodb/adodb-datadict.inc.php
index 4a44dc0..d2f317d 100644
--- a/lib/pkp/lib/adodb/adodb-datadict.inc.php
+++ b/lib/pkp/lib/adodb/adodb-datadict.inc.php
@@ -516,7 +516,9 @@ class ADODB_DataDict {
     {
         $tabname = $this->TableName ($tabname);
         if ($flds) {
-            list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+            // Avoid use of SERIAL for existing columns, 2014-04-14
+            // by AS
+            list($lines,$pkey,$idxs) = $this->_GenFields($flds, false, false);
             // genfields can return FALSE at times
             if ($lines == null) $lines = array();
             list(,$first) = each($lines);
@@ -595,7 +597,7 @@ class ADODB_DataDict {
 
 
 
-    function _GenFields($flds,$widespacing=false)
+    function _GenFields($flds,$widespacing=false,$allowSerial=true)
     {
         if (is_string($flds)) {
             $padding = '     ';
@@ -684,7 +686,9 @@ class ADODB_DataDict {
                                 break;
                 case 'UNSIGNED': $funsigned = true; break;
                 case 'AUTOINCREMENT':
-                case 'AUTO':    $fautoinc = true; $fnotnull = true; break;
+                case 'AUTO':    // Serial type (psql) not allowed in ALTER TABLE statements (2014-04-14 AS)
+                        if ($allowSerial) $fautoinc = true;
+                        $fnotnull = true; break;
                 case 'KEY':
                 // a primary key col can be non unique in itself (if key spans many cols...)
                 case 'PRIMARY':    $fprimary = $v; $fnotnull = true; /*$funiqueindex = true;*/ break;
@@ -1000,7 +1004,9 @@ class ADODB_DataDict {
         } */
 
         // already exists, alter table instead
-        list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+        // (Avoid use of SERIAL when altering existing fields for psql,
+        // 2014-04-14 by AS)
+        list($lines,$pkey,$idxs) = $this->_GenFields($flds, false, false);
         // genfields can return FALSE at times
         if ($lines == null) $lines = array();
         $alter = 'ALTER TABLE ' . $this->TableName($tablename);
@@ -1068,4 +1074,4 @@ class ADODB_DataDict {
         $this->charSet = $charset_name;
     }
 } // class
-?>
\ No newline at end of file
+?>
diff --git a/lib/pkp/lib/adodb/datadict/datadict-postgres.inc.php b/lib/pkp/lib/adodb/datadict/datadict-postgres.inc.php
index af6cf3b..6edebb2 100644
--- a/lib/pkp/lib/adodb/datadict/datadict-postgres.inc.php
+++ b/lib/pkp/lib/adodb/datadict/datadict-postgres.inc.php
@@ -193,7 +193,9 @@ class ADODB2_postgres extends ADODB_DataDict {
        if ($has_alter_column) {
           $tabname = $this->TableName($tabname);
           $sql = array();
-          list($lines,$pkey) = $this->_GenFields($flds);
+          // Avoid use of SERIAL when altering an existing column
+          // 2014-04-14 by AS
+          list($lines,$pkey) = $this->_GenFields($flds, false, false);
           $set_null = false;
           $alter = 'ALTER TABLE ' . $tabname . $this->alterCol . ' ';
           foreach($lines as $v) {
@@ -599,4 +601,4 @@ CREATE [ UNIQUE ] INDEX index_name ON table
         return $sql;
     }
 }
-?>
\ No newline at end of file
+?>

Crie uma pasta para submissions, com permissões de escrita para www:www, copie tudo da pasta submissions antiga para ela (cp não resolve) faz um tar -cvzf e depois um tar -xvzf para a nova pasta…

Qual pasta seria essa submissions? Fiquei na dúvida… Poderia dar mais detalhes dessa parte?

Bom dia Paulo,
No sistema OJS existem algumas pastas onde são guardados os arquivos enviados pelos autores, que serão depois avaliados e aceitos pelos pareceristas.
Esta pasta “submissions” está declarada no arquivo de configuração do ojs “config.inc.php”, não necessariamente deverá ter este nome. Pode escolher qualquer nome para ela, desde que seja declarada na configuração.
Caso já tenha o OJS instalado, certamente terá uma pasta para receber as submissões. Se for instalação nova, deverá criar uma.

Parte do config.inc.php
[files]

; Complete path to directory to store uploaded files
; (This directory should not be directly web-accessible)
; Windows users should use forward slashes
files_dir = /usr/local/www/submissionsnew

Att
Augusto

jamais crie a paste de submissoes dentro duma pasta que seja diretamente acessivel pela web. Isso além de permitir o acesso de qualquer pessoa a arquivos ainda nao publicados, possibilita que alguem envie um arquivo malicioso e execute ele diretamente no seu servidor, permitindo uma serie de ataques.

Prezados,

Vocês poderiam encaminhar o manual ou parte do manual do OJS 3 em português?

Muito bem lembrado Ronnie,

Minha pasta acessível pela web está fora desta pasta submissions. Esta recomendação para deixar as a pasta submissoes em um local privado vale também para todos aplicativos da PKP (OJS, OCS, OMP, …).
Att
Augusto

1 curtida

o guia OJS 3 esta disponível em http://bibjuventude.ibict.br/jspui/handle/192/252