Prerequisites
I'm trying to upgrade from mw-1.23 to mw-1.32
PHP version:
PHP 7.1.26 (cli) (built: Jan 9 2019 08:02:33) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
Postgres version:
postgres (PostgreSQL) 9.2.24
Error
When running the maintenance/update.php script, the update fails because of an SQL error.
The subscript is maintenance/populateExternallinksIndex60.php
Error log:
<...SNIP...> Populating el_index_60 field, printing progress markers. For large databases, you may want to hit Ctrl-C and do this manually with maintenance/populateExternallinksIndex60.php. Populating externallinks.el_index_60... el_id 0 - 200 of 1289 [7dd7e1c7d4c20fb84a749381] [no req] Wikimedia\Rdbms\DBQueryError from line 1496 of /srv/wiki/instances/ict/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? Query: UPDATE IGNORE "externallinks" SET el_index_60 = 'https://org.wikipedia.en./wiki/GPU_switching' WHERE el_id = '10' Function: PopulateExternallinksIndex60::doDBUpdates Error: 42P01 ERROR: relation "ignore" does not exist LINE 1: ...ernallinksIndex60::doDBUpdates postgres@cp0577 */ IGNORE "ex... ^ Backtrace: #0 /srv/wiki/instances/ict/includes/libs/rdbms/database/Database.php(1466): Wikimedia\Rdbms\Database->makeQueryException(string, string, string, string) #1 /srv/wiki/instances/ict/includes/libs/rdbms/database/Database.php(1226): Wikimedia\Rdbms\Database->reportQueryError(string, string, string, string, boolean) #2 /srv/wiki/instances/ict/includes/libs/rdbms/database/Database.php(2112): Wikimedia\Rdbms\Database->query(string, string) #3 /srv/wiki/instances/ict/maintenance/populateExternallinksIndex60.php(76): Wikimedia\Rdbms\Database->update(string, array, array, string, array) #4 /srv/wiki/instances/ict/maintenance/Maintenance.php(1698): PopulateExternallinksIndex60->doDBUpdates() #5 /srv/wiki/instances/ict/includes/installer/DatabaseUpdater.php(1374): LoggedUpdateMaintenance->execute() #6 /srv/wiki/instances/ict/includes/installer/DatabaseUpdater.php(485): DatabaseUpdater->populateExternallinksIndex60() #7 /srv/wiki/instances/ict/includes/installer/DatabaseUpdater.php(449): DatabaseUpdater->runUpdates(array, boolean) #8 /srv/wiki/instances/ict/maintenance/update.php(203): DatabaseUpdater->doUpdates(array) #9 /srv/wiki/instances/ict/maintenance/doMaintenance.php(94): UpdateMediaWiki->execute() #10 /srv/wiki/instances/ict/maintenance/update.php(248): require_once(string) #11 {main}
I believe UPDATE IGNORE is MySQL specific and not allowed in PostgreSQL.