skip to Main Content

Atualização do OJS 2.4.8 para 3.0.1

Em virtude de dificuldades encontradas na atualização da versão 2 para 3 do OJS (Open Journal System), resolvi fazer este resumo da solução encontrada.

Abaixo os comando para solução do seguinte que estava obtendo na atualização:

There are no readable files in this directory tree. Are safe mode or open_basedir active?

Parece que há um erro de dados nos dados OJS 2.4.x: alguns dos artigos não possuem uma seção válida.

Para verificar se há artigos nessa situação, execute o seguinte no seu banco de dados:

SELECT a.article_id FROM articles a LEFT JOIN sections s ON (a.section_id = s.section_id) WHERE s.section_id IS NULL;

Isso gerará uma lista de IDs de artigos para os quais uma seção é necessária. Você pode entrar através do fluxo de trabalho OJS 2.4.x e atribuí-los, ou você pode editar o banco de dados diretamente (Se estiver trabalhando com o banco de dados diretamente, verifique se o section_id  que você usa pertence ao diário no qual o envio está).

A primeira coisa a fazer é estabelecer uma política sobre como, de uma perspectiva de conteúdo, você deseja atribuir esses artigos. Existe já uma seção consistente e adequada nas revistas que você deseja atribuir a esses artigos? Deseja criar uma nova seção para cada revista?

Como você tem tantos periódicos, a abordagem mais conveniente é provavelmente criar uma nova seção para cada revista, diretamente no banco de dados. Você pode fazer isso com:

INSERT INTO sections (journal_id, seq, editor_restricted, meta_indexed, meta_reviewed, abstracts_not_required, hide_title, hide_author, hide_about) SELECT journal_id, -9999, 1, 1, 0, 1, 1, 0, 1 FROM journals;

Isso criará uma nova seção para cada revista. O seqvalor -9999causará que a seção seja listada muito alta na tabela de conteúdo (eu suspeito que você precisará preservar a ordem da exibição do artigo), mas também vamos usá-lo abaixo como uma conveniência para ajudar a encontrar esses novos seções ao preencher os outros dados necessários.

Agora você quer dar um título para cada seção:

INSERT INTO section_settings (section_id, locale, setting_name, setting_value, setting_type) SELECT section_id, ‘en_US’, ‘title’, ‘New Section Title Here’, ‘string’ FROM sections WHERE seq=-9999;

O exemplo acima define o en_UStítulo em inglês ( ) para “Novo título de seção”; ajuste a localidade e o título para se adequar e repita a consulta quantas vezes você precisar para várias localidades. Certifique-se de fornecer pelo menos um valor nos locais principais do jornal.

Agora, você precisará fazer uma atualização de várias mesas para atribuir as seções não atribuídas às novas seções:

UPDATE articles a LEFT JOIN sections s1 ON (s1.section_id=a.section_id) LEFT JOIN sections s2 ON (a.journal_id=s2.journal_id AND s2.seq=-9999) SET a.section_id=s2.section_id WHERE s1.section_id IS NULL;

Certifique-se de ter um bom backup antes de executá-los, e antes de entrar em contato com os dados corrigidos dessa maneira, certifique-se de revisá-lo dentro da instalação para garantir que ele esteja bem.

(Essas consultas são destinadas a serem executadas no banco de dados OJS 2.x, antes de executar o script de atualização).

Fonte: https://forum.pkp.sfu.ca/t/upgrade-from-ojs-2-4-7-to-3-0-1-fails/27716

Diego

Servidor Público,
Web Developer,
Bacharel em Sistemas de Informação,
Lato Sensu em Gestão Pública

Back To Top