OJS upgrade 2.8.4 to 3.1 error

hi ,
I’m upgrading to lastest version 3.1 and in the first windows of installation page, it gave me this error
"
Parse error: syntax error, unexpected ‘[’ in /var/www/lib/pkp/lib/vendor/nikic/fast-route/src/functions.php on line 12 "

Any idea how to fix it?

thanks much

Hi @Ptran,

What version of PHP are you using?

Best,
Amanda Stevens
Public Knowledge Project Team

hi Amanda,
I’m running PHP version 5.3.3, I guess i should be getting at least 5.6 or newer to get OJS version 3.0 to work properly ?

thanks

Hi @Ptran,

Yes, that error usually indicates that your PHP is out of date. You need a minimum of 5.6 to run OJS 3.1.

Best,
Amanda Stevens
Public Knowledge Project Team

hi !
I just got my PHP version 7 installed to get OJS-2.4.8 upgrade to 3.1. I also changed MYSQL to MYSQLi driver in the OJS configuration file. At the URL installation page, It came up with some errors.
I captured it by turn on “show_stacktrace”

OjsError

how do I fix this error?

thanks for all your help !

Hi @Ptran,

Please see this post and try running your upgrade again, checking your file permissions first.

Best,
Amanda Stevens
Public Knowledge Project Team

All the permissions are correct now! I also got SELINUX set to permissive. It is now come up with different errors. I tried to dump the database from my old MYSQL5.3.3 server couple times to make sure nothing corrupted. But it is still come up with the same errors.

thanks for your help.

======================================

Warning: Declaration of InstallHandler::validate($request) should be compatible with PKPHandler::validate($requiredContexts = NULL, $request = NULL) in /var/www/lib/pkp/pages/install/InstallHandler.inc.php on line 118

DB Error: Unknown column ‘article_id’ in ‘field list’

Stack Trace:

File: /var/www/classes/install/Upgrade.inc.php line 90
Function: DAO->retrieve(“SELECT article_id, journal_id, review_file_id FROM articles WHER…”)

File: /var/www/lib/pkp/classes/install/Installer.inc.php line 415
Function: Upgrade->removeReviewEntries(Object(Upgrade), Array(1))

File: /var/www/lib/pkp/classes/install/Installer.inc.php line 265
Function: Installer->executeAction(Array(3))

File:/var/www/lib/pkp/classes/install/Installer.inc.php line 186
Function: Installer->executeInstaller()

File: /var/www/lib/pkp/classes/install/form/UpgradeForm.inc.php line 40
Function: Installer->execute()

File: /var/www/lib/pkp/pages/install/InstallHandler.inc.php line 104
Function: UpgradeForm->execute()

File: /var/www/lib/pkp/classes/core/PKPRouter.inc.php line 372
Function: InstallHandler->installUpgrade(Array(0), Object(Request))

File: /var/www/lib/pkp/classes/core/PKPPageRouter.inc.php line 233
Function: PKPRouter->_authorizeInitializeAndCallRequest(Array(2), Object(Request), Array(0), False)

File: /var/www/lib/pkp/classes/core/Dispatcher.inc.php line 134
Function: PKPPageRouter->route(Object(Request))

File: /var/www/lib/pkp/classes/core/PKPApplication.inc.php line 243
Function: Dispatcher->dispatch(Object(Request))

File: /var/www/index.php line 68
Function: PKPApplication->execute()

Hi @Ptran,

This suggests that your articles table doesn’t have an article_id column. Can you check whether that’s the case? Are you sure you’re using a backup of your 2.4.8 database, not something that’s been partially upgraded to 3.x already?

Regards,
Alec Smecher
Public Knowledge Project Team

hi Alec,
I just made another dump from my live OJS 2.4.8, to make sure I work with a clean database . I dropped the current database on my test server and imported the 2.4.8 database back in. Before i run the upgrade to 3.1 , I also checked within Mariadb to make sure I have article_id column.
articlecheck

When I ran the upgrade, it shows another error.

upgradeerror

what should I do?

thanks

Hi @Ptran,

Please see this issue.

Best,
Amanda Stevens
Public Knowledge Project Team

hi,
Sorry, I am not expert in MYSQL, I followed your post and understand that I have to delete all the duplicate entry in “review_round_files” table. Can you please provide me with a detail command lines or instructions? I don’t want to mess around with stuff I am not sure.

many thanks

Hi @Ptran,

The SQL commands to run are described in this comment.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like

Hi Alec,
I tried to drop those duplicate entry, but my installation still can’t pass and stop at the same errors:

"
Query: INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_round_id, 3, afm.file_id, a fm.revision FROM article_files_migration afm, articles_migration am, review_rounds rr WHERE am.review_file_id = afm.file_id AND rr.submission_id = afm.article_i d AND rr.round = afm.round failed. Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’
1062: Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’
ADOConnection._Execute(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id , revision) SELECT afm.article_id, rr.review_ro…, false)% line 1051, file: /opt/rh/httpd24/root/var/www/ojs/lib/pkp/lib/adodb/adodb.inc.php
ADOConnection.Execute(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revisio n) SELECT afm.article_id, rr.review_ro…)% line 440, file: /opt/rh/httpd24/root/var/www/ojs/lib/pkp/classes/install/Installer.inc.php
Installer.executeSQL(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_ro…)% line 435, file: /opt/rh/httpd24/root/var/www/ojs/lib/pkp/classes/install/Installer.inc.php
Installer.executeSQL(Array[111])% line 396, file: /opt/rh/httpd24/root/var/www/ojs/lib/pkp/classes/install/Installer.inc.p hp
Installer.executeAction(Array[3])% line 265, file: /opt/rh/httpd24/root/var/www/ojs/lib/pkp/classes/install/Installer.inc.php
ERROR: Upgrade failed: DB: Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’
"

Could be that I didn’t remove it correctly? Here is what I did to check the tables:
mysql-error

% mysql -u ojs -p ojs -e ‘SELECT submission_id FROM review_round_files;’ | sort | uniq | wc -l
370

% mysql -u ojs -p ojs -e ‘SELECT submission_id, stage_id, review_round_id FROM review_round_files;’ | sort | uniq | wc -l
370

% mysql -u ojs -p ojs -e ‘SELECT submission_id,stage_id,review_round_id,file_id,revision FROM review_round_files;’ | sort | uniq | wc -l
642

%mysql -u ojs -p ojs -e ‘SELECT submission_id FROM review_round_files;’ | wc -l
642

TO remove those duplicate entry:

MariaDB [(ojs)]> CREATE TABLE review_round_files_old SELECT * FROM review_round_files;

MariaDB [(ojs)]> DELETE FROM review_round_files WHERE review_round_id NOT IN(SELECT MIN(review_round_id) FROM review_round_files_old GROUP BY submission_id, review_round_id, stage_id, file_id, revision);

MariaDB [(old)]> drop table review_round_files_old;

Please point out if any of my steps are incorrect.
Thanks for all your helps

Hi @Ptran,

Just to check your process – you should be doing something like this…

  • Drop and re-create your OJS database

  • Restore your database contents from a 2.8.4 backup

  • Execute the queries from the link above:

    CREATE TABLE review_round_files_old SELECT * FROM review_round_files;
    DELETE FROM review_round_files WHERE review_round_id NOT IN(SELECT MIN(review_round_id) FROM review_round_files_old GROUP BY submission_id, review_round_id, stage_id, file_id, revision);
    DROP TABLE review_round_files_old;
    
  • Try running the upgrade script again.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi,
I dropped the current database and imported v2.4.8 back in then ran the upgrade script few times but It still gave me the same errors. Specially, when I ran the Mysql commands below. If you notice, there was ‘zero’ rows affected .

MariaDB [ojs]> CREATE TABLE review_round_files_old SELECT * FROM review_round_files;
Query OK, 648 rows affected (0.01 sec)
Records: 648 Duplicates: 0 Warnings: 0

MariaDB [ojs]> DELETE FROM review_round_files WHERE review_round_id NOT IN(SELECT MIN(review_round_id) FROM review_round_files_old GROUP BY submission_id, review_round_id, stage_id, file_id, revision);
Query OK, 0 rows affected (0.61 sec)

MariaDB [ojs]> DROP TABLE review_round_files_old;
Query OK, 0 rows affected (0.00 sec)

Any idea ?
Many thanks

Hi @Ptran,

Can you post the entire output that you get from running the OJS upgrade script?

Regards,
Alec Smecher
Public Knowledge Project Team

It is quite long ! The system doesn’t allowed me to post entire file. I only able to post the last hundred lines or so. If you want to see the entire output, I can send you the file
thanks

===================================

-----



(mysqli): UPDATE submission_files sf, article_galleys_migration agm SET sf.assoc_type = 515, sf.assoc_id = agm.file_id WHERE sf.file_id = agm.style_file_id

-----



-----

(mysqli): UPDATE announcement_type_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE announcement_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE user_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE notification_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE email_templates_default_data SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE email_templates_data SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE controlled_vocab_entry_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE citation_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE metadata_description_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE filter_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE review_form_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE review_form_element_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE user_group_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submission_file_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE author_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE data_object_tombstone_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE journal_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE section_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE issue_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE issue_galleys SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE issue_galley_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submissions SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submission_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submission_galleys SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submission_galley_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE rt_versions SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE subscription_type_settings SET locale=‘nb_NO’ WHERE locale=‘no_NO’

-----



-----

(mysqli): UPDATE submissions SET status=4 WHERE status=0

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$submissionCopyeditingUrl}’, ‘{$submissionUrl}’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$submissionCopyeditingUrl}’, ‘{$submissionUrl}’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$layoutEditorName}’, ‘{$participantName}’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$layoutEditorName}’, ‘{$participantName}’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$layoutEditorUsername}’, ‘{$participantUsername}’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$layoutEditorUsername}’, ‘{$participantUsername}’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$copyeditorName}’, ‘{$participantName}’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$copyeditorName}’, ‘{$participantName}’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$copyeditorUsername}’, ‘{$participantUsername}’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$copyeditorUsername}’, ‘{$participantUsername}’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editors’) WHERE locale = ‘en_US’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editors’) WHERE locale = ‘en_US’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Herausgeber/innen’) WHERE locale = ‘de_DE’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Herausgeber/innen’) WHERE locale = ‘de_DE’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Επιμελητές’) WHERE locale = ‘el_GR’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Επιμελητές’) WHERE locale = ‘el_GR’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editores’) WHERE locale = ‘es_ES’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editores’) WHERE locale = ‘es_ES’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Éditeurs’) WHERE locale = ‘fr_CA’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Éditeurs’) WHERE locale = ‘fr_CA’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_default_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editores’) WHERE locale = ‘pt_BR’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): UPDATE email_templates_data SET body=REPLACE(body, ‘{$editorialContactName}’, ‘Editores’) WHERE locale = ‘pt_BR’ AND email_key IN (‘REVIEW_CONFIRM’, ‘REVIEW_DECLINE’)

-----



-----

(mysqli): INSERT INTO plugin_settings (plugin_name, setting_name, setting_value, setting_type, context_id) VALUES (‘defaultthemeplugin’, ‘enabled’, ‘1’, ‘bool’, 0)

-----



-----

(mysqli): INSERT INTO plugin_settings (plugin_name, setting_name, setting_value, setting_type, context_id) SELECT ‘defaultthemeplugin’, ‘enabled’, ‘1’, ‘bool’, journal_id FROM journals

-----



-----

(mysqli): INSERT INTO site_settings (setting_name, setting_value, setting_type) VALUES (‘themePluginPath’, ‘default’, ‘string’)

-----



-----

(mysqli): INSERT INTO journal_settings (setting_name, setting_value, setting_type, journal_id) SELECT ‘themePluginPath’, ‘default’, ‘string’, journal_id FROM journals

-----



-----

(mysqli): UPDATE event_log SET message=‘submission.event.submissionSubmitted’ WHERE message=‘log.author.submitted’

-----



-----

(mysqli): UPDATE submissions SET stage_id=3 WHERE submission_id IN (SELECT DISTINCT submission_id FROM review_assignments)

-----



-----

(mysqli): UPDATE submissions SET stage_id=3 WHERE stage_id = 1 AND submission_id IN (SELECT DISTINCT submission_id FROM review_rounds)

-----



-----

(mysqli): UPDATE submissions SET stage_id=4 WHERE submission_id IN (SELECT e1.submission_id FROM edit_decisions e1 LEFT JOIN edit_decisions e2 ON (e2.edit_decision_id > e1.edit_decision_id AND e2.submission_id = e1.submission_id) WHERE e2.edit_decision_id IS NULL AND e1.decision = 1)

-----



-----

(mysqli): UPDATE review_rounds SET stage_id=3

-----



-----

(mysqli): UPDATE review_assignments SET stage_id=3

-----



-----

(mysqli): UPDATE review_assignments ra, review_rounds rr SET ra.review_round_id = rr.review_round_id WHERE ra.submission_id = rr.submission_id AND ra.round = rr.round

-----



-----

(mysqli): INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_round_id, 3, afm.file_id, afm.revision FROM article_files_migration afm, articles_migration am, review_rounds rr WHERE am.review_file_id = afm.file_id AND rr.submission_id = afm.article_id AND rr.round = afm.round

-----



Query: INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_round_id, 3, afm.file_id, afm.revision FROM article_files_migration afm, articles_migration am, review_rounds rr WHERE am.review_file_id = afm.file_id AND rr.submission_id = afm.article_id AND rr.round = afm.round failed. Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’
1062: Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’
ADOConnection._Execute(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_ro…, false)% line 1051, file: /opt/rh/httpd24/ojs/lib/pkp/lib/adodb/adodb.inc.php
ADOConnection.Execute(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_ro…)% line 440, file: /opt/rh/httpd24/ojs/lib/pkp/classes/install/Installer.inc.php
Installer.executeSQL(INSERT INTO review_round_files (submission_id, review_round_id, stage_id, file_id, revision) SELECT afm.article_id, rr.review_ro…)% line 435, file: /opt/rh/httpd24/ojs/lib/pkp/classes/install/Installer.inc.php
Installer.executeSQL(Array[111])% line 396, file: /opt/rh/httpd24/ojs/lib/pkp/classes/install/Installer.inc.php
Installer.executeAction(Array[3])% line 265, file: /opt/rh/httpd24/ojs/lib/pkp/classes/install/Installer.inc.php
ERROR: Upgrade failed: DB: Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’

Hi @Ptran,

Try again, but with the debug option in config.inc.php turned off. That should make the log more manageable.

Regards,
Alec Smecher
Public Knowledge Project Team

This is what I got
Thanks

[root@ojs3x ]# php tools/upgrade.php upgrade
[pre-install]
[load: upgrade.xml]
[version: 3.1.0.1]

[code: Installer Installer::syncSeriesAssocType]
[data: dbscripts/xml/upgrade/2.4.0_preupdate_usageStatistics.xml (skipped)]
[data: dbscripts/xml/upgrade/2.4.0_preupdate_usageStatistics2.xml (skipped)]

[code: Installer Installer::removeReviewEntries]
[data: dbscripts/xml/upgrade/3.0.0_preupdate.xml]
[data: dbscripts/xml/upgrade/3.0.0_adaptTimedViews.xml (skipped)]
[data: dbscripts/xml/upgrade/3.0.0_adaptReferrals.xml]
[data: dbscripts/xml/upgrade/3.0.0_adaptBooksForReview.xml]
[data: dbscripts/xml/upgrade/remove_timed_views_bots.xml (skipped)]
[data: dbscripts/xml/upgrade/3.0.0_preupdate_commentsToEditor.xml (skipped)]

[code: Installer Installer::concatenateIntoAbout]

[code: Installer Installer::concatenateIntoMasthead]
[data: dbscripts/xml/upgrade/3.1.0_preupdate_review_assignments.xml]
[data: dbscripts/xml/upgrade/3.1.0_preupdate_notes.xml]
[data: dbscripts/xml/upgrade/3.1.0_preupdate_payments.xml]
[schema: lib/pkp/xml/schema/common.xml]
[schema: lib/pkp/xml/schema/log.xml]
[schema: lib/pkp/xml/schema/announcements.xml]
[schema: lib/pkp/xml/schema/scheduledTasks.xml]
[schema: lib/pkp/xml/schema/temporaryFiles.xml]
[schema: lib/pkp/xml/schema/metadata.xml]
[schema: lib/pkp/xml/schema/reviews.xml]
[schema: lib/pkp/xml/schema/reviewForms.xml]
[schema: lib/pkp/xml/schema/controlledVocab.xml]
[schema: lib/pkp/xml/schema/submissions.xml]
[schema: lib/pkp/xml/schema/submissionFiles.xml]
[schema: lib/pkp/xml/schema/notes.xml]
[schema: lib/pkp/xml/schema/views.xml]
[schema: lib/pkp/xml/schema/genres.xml]
[schema: lib/pkp/xml/schema/tombstone.xml]
[schema: lib/pkp/xml/schema/rolesAndUserGroups.xml]
[schema: lib/pkp/xml/schema/metrics.xml]
[schema: lib/pkp/xml/schema/views.xml]
[schema: lib/pkp/xml/schema/libraryFiles.xml]
[schema: lib/pkp/xml/schema/navigationMenus.xml]
[schema: dbscripts/xml/ojs_schema.xml]
[data: dbscripts/xml/indexes.xml]

[code: Installer Installer::migrateCounterPluginUsageStatistics (skipped)]

[code: Installer Installer::migrateTimedViewsUsageStatistics (skipped)]

[code: Installer Installer::migrateDefaultUsageStatistics (skipped)]
[data: dbscripts/xml/upgrade/2.4.0_postUsageStatsMigration.xml (skipped)]
[data: dbscripts/xml/upgrade/2.4.0_postUsageStatsMigration2.xml (skipped)]
[data: dbscripts/xml/upgrade/2.4.0_postCounterMigration.xml (skipped)]
[data: dbscripts/xml/upgrade/2.4.0_postTimedViewsMigration.xml (skipped)]
[data: dbscripts/xml/upgrade/3.0.0_change_assoc_type.xml]
[data: dbscripts/xml/upgrade/3.0.0_change_assoc_type_metrics.xml]
[data: dbscripts/xml/upgrade/3.0.0_settings.xml]

[code: Installer Installer::installDefaultGenres]

[code: Installer Installer::migrateArticleMetadata]
[data: dbscripts/xml/upgrade/3.0.0_update.xml]
ERROR: Upgrade failed: DB: Duplicate entry ‘1-1-3-1’ for key ‘review_round_files_pkey’

Hi @Ptran,

Can you double-check, after you’ve loaded your OJS 2.4.8 database but before you run the OJS 2.x to 3.x upgrade script, whether the review_round_files table exists in your database?

Regards,
Alec Smecher
Public Knowledge Project Team