Steps to replicate the issue (include links if applicable):
- Checkout this gist: https://gist.github.com/markspolakovs/f24e019324401a5e11076d202463a4af
- Run docker-compose up -d
- Visit http://localhost:8000 and install MW against Postgres (DB host, username, and password are all postgres)
- Download the LocalSettings.php, place it next to the docker-compose.yml, uncomment the commented-out lines in docker-compose.yml, run docker-compose up -d again
- Verify that http://localhost:8000/wiki/Special:Version works and is 1.36
- Run docker-compose exec mw137 php maintenance/upgrade.php to run the upgrade
What happens?:
Upgrade fails with this error:
Changing 'user.user_token' to not allow NULLs
Wikimedia\Rdbms\DBQueryError from line 1809 of /var/www/html/includes/libs/rdbms/database/Database.php: Error 23502: ERROR: column "user_token" of relation "user" contains null values
Function: PostgresUpdater::changeNullableField
Query: ALTER TABLE "user" ALTER user_token SET NOT NULL
#0 /var/www/html/includes/libs/rdbms/database/Database.php(1793): Wikimedia\Rdbms\Database->getQueryException('ERROR: column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...')
#1 /var/www/html/includes/libs/rdbms/database/Database.php(1768): Wikimedia\Rdbms\Database->getQueryExceptionAndLog('ERROR: column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...')
#2 /var/www/html/includes/libs/rdbms/database/Database.php(1327): Wikimedia\Rdbms\Database->reportQueryError('ERROR: column ...', '23502', 'ALTER TABLE "us...', 'PostgresUpdater...', false)
#3 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(68): Wikimedia\Rdbms\Database->query('ALTER TABLE "us...', 'PostgresUpdater...', 0)
#4 /var/www/html/includes/libs/rdbms/database/DBConnRef.php(297): Wikimedia\Rdbms\DBConnRef->__call('query', Array)
#5 /var/www/html/includes/installer/PostgresUpdater.php(976): Wikimedia\Rdbms\DBConnRef->query('ALTER TABLE "us...', 'PostgresUpdater...')
#6 /var/www/html/includes/installer/DatabaseUpdater.php(533): PostgresUpdater->changeNullableField('"user"', 'user_token', 'NOT NULL', true)
#7 /var/www/html/includes/installer/DatabaseUpdater.php(497): DatabaseUpdater->runUpdates(Array, false)
#8 /var/www/html/maintenance/update.php(193): DatabaseUpdater->doUpdates(Array)
#9 /var/www/html/maintenance/doMaintenance.php(108): UpdateMediaWiki->execute()
#10 /var/www/html/maintenance/update.php(264): require_once('/var/www/html/m...')
#11 {main}What should have happened instead?:
Upgrade should have succeeded
Software version (skip for WMF-hosted wikis like Wikipedia):
Upgrading from MW 1.36.4 or below to 1.37 or above (including 1.39)
Other information (browser name/version, screenshots, etc.):
Seems to be the same issue as T297031, but the patch there didn't actually fix this issue - wasn't sure whether to reopen it or open a new bug.