Describe the issue or problem
I’m using OJS docker image, and when try to upgrade, the error occured
2025-02-12 18:35:14 [A pre-flight check failed. The software was successfully upgraded to 3.3.9.9 but could not be upgraded further (to 3.4.0.4). Check and correct the error, then try again.]
ERROR: Upgrade failed: DB: Exception: Some DOIs have been registered with multiple registration agencies. Resolve duplicates before continuing by running `php tools/resolveAgencyDuplicates.php`. in /var/www/html/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php:340
Stack trace:
#0 /var/www/html/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php(30): APP\migration\upgrade\v3_4_0\PreflightCheckMigration->checkDuplicateDoiRegistrationAgencies()
#1 /var/www/html/lib/pkp/classes/install/Installer.php(463): APP\migration\upgrade\v3_4_0\PreflightCheckMigration->up()
#2 /var/www/html/lib/pkp/classes/install/Installer.php(294): PKP\install\Installer->executeAction()
#3 /var/www/html/lib/pkp/classes/install/Installer.php(209): PKP\install\Installer->executeInstaller()
#4 /var/www/html/lib/pkp/classes/cliTool/UpgradeTool.php(96): PKP\install\Installer->execute()
#5 /var/www/html/lib/pkp/classes/cliTool/UpgradeTool.php(69): PKP\cliTool\UpgradeTool->upgrade()
#6 /var/www/html/tools/upgrade.php(22): PKP\cliTool\UpgradeTool->execute()
#7 {main}
and when I try to solve the problem by running the script that OJS provide, I’m a little bit confused how to use it. This is the output when I run the script
$ docker exec -it ojs php /var/www/html/tools/resolveAgencyDuplicates.php
Script to resolve DOI registration agency duplication pre-3.4.
NB: If a conflict exists for a submission, the corresponding publication objects (galleys, etc.) will also be cleaned up.
Usage:
/var/www/html/tools/resolveAgencyDuplicates.php resolve [agency_name] --force : Remove conflicting DOI registration info, keeping agency_name.
/var/www/html/tools/resolveAgencyDuplicates.php test : Returns list of conflicting items
Options:
agency_name One of: crossref, datacite, medra.
--force Force resolve operation. Will not delete data without it.
$ docker exec -it ojs php /var/www/html/tools/resolveAgencyDuplicates.php test
IDs with duplicate DOI registration metadata:
Submissions: [4605,4606,4607,4608,4609,6191,6192,6194,6195,6196,6197,6610,6612,6613,6614,6796,6919,7369,7518,7761,7824,7883,7950,8109,8129,8132,8133,8275,8527,8980,9178,9209,9257,10416,11636,11664,12340,12466,12484,12498,12510,12548,12559,13144,15902,16494,18179]
Galleys: []
Issues: []
my question is:
- what is
agency_name
? from where I can get this information? - I check the submission ID that script told me, some submission is already published. If I fix it with the given script, whats impact to the submission, is it will be removed/gone?
- how can I safely solve this problem?
Steps I took leading up to the issue
For example:
- Use docker image with version 3.3.0-20
- Try to upgrade to 3.4.0-4 (I’m following this method to upgrade)
What application are you using?
OJS 3.3.0-20
Additional information