[3.3.0-10 com Postgres] Artigos somem da edição ao ser publicado

Estou com o mesmo problema desse outro tópico onde ao publicar uma edição me retorna erro 500 →

[3.3.0-7 com Postgres] Artigos somem da edição ao ser publicado

O erro foi o abaixo.

[18-Oct-2022 14:00:00 GMT] PHP Fatal error: Uncaught PDOException: SQLSTATE[42P10]: Invalid column reference: 7 ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification in /opt/app-root/src/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:115
Stack trace:
#0 /opt/app-root/src/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(115): PDOStatement->execute(NULL)
#1 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(489): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(664): Illuminate\Database\Connection->Illuminate\Database{closure}(‘insert into "cu…’, Array)
#3 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(631): Illuminate\Database\Connection->runQueryCallback(‘insert into "cu…’, Array, Object(Closure))
#4 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/C in /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 671
[18-Oct-2022 14:00:02 GMT] PHP Fatal error: Uncaught PDOException: SQLSTATE[42P10]: Invalid column reference: 7 ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification in /opt/app-root/src/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:115
Stack trace:
#0 /opt/app-root/src/lib/pkp/lib/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(115): PDOStatement->execute(NULL)
#1 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(489): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(664): Illuminate\Database\Connection->Illuminate\Database{closure}(‘insert into "cu…’, Array)
#3 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php(631): Illuminate\Database\Connection->runQueryCallback(‘insert into "cu…’, Array, Object(Closure))
#4 /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/C in /opt/app-root/src/lib/pkp/lib/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 671

eu executei o comando citado no tópico do fórum

alter table custom_issue_orders add constraint uq_issue unique(issue_id,journal_id);

Porém a query gerada pelo sistema segue:

insert into “custom_issue_orders” (“issue_id”, “journal_id”, “seq”) values (92, 2, 1) on conflict (“issue_id”) do update set “issue_id” = “excluded”.“issue_id”, “journal_id” = “excluded”.“journal_id”, “seq” = “excluded”.“seq”

O on conflict (“issue_id”) vem com apenas um campo onde deveriam ser 2.

Ao executar a consulta tenho esse erro → ERROR: there is no unique or exclusion constraint matching the ON CONFLICT specification SQL state: 42P10

O que posso fazer para solucionar essa questão? Atualizar algo?

1 curtida

@RebertRichards2 ,

não sei se é o mesmo caso, por favor verifique se é o mesmo caso. O Alec do PKP informa que esse problema ocorre porque a consulta (gerada pela função do Laravel replace ) sugere que haverá um índice exclusivo no issue_id, journal_id . No entanto, a chave primária está ativada issue_id (e journal_id é redundante).

Então, ele sugere aplicar esse commit para resolver:

Refêrencia:

Acredito que essa solução já foi aplicada na versão 3.3.0.9, a sua versão é 3.3.0.10.

1 curtida

MInha versão não contemplava essa mudança. COloquei e funcionou, agora me deu erro de timeout na funcionalidade mas acredito ser permissão numa pasta pois o erro é esse

[20-Oct-2022 14:59:54 GMT] PHP Warning: fopen(/mnt/data/ojs/scheduledTaskLogs/TarefaderegistroautomáticodoDOAJ-6351626a9f02d-20221020.log): failed to open stream: Permission denied in /opt/app-root/src/lib/pkp/classes/scheduledTask/ScheduledTask.inc.php on line 111
[20-Oct-2022 14:59:54 GMT] PHP Warning: flock() expects parameter 1 to be resource, bool given in /opt/app-root/src/lib/pkp/classes/scheduledTask/ScheduledTask.inc.php on line 112

Bom que deu certo @RebertRichards2 !

deve ser alguma permissão na pasta /mnt/data/ojs/scheduledTaskLogs .

1 curtida