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.