Steps to Reproduce:
Install a new wiki with the CheckUser extension then run maintenance/update.php to do the setup.
Actual Results:
Starting poulation of cu_changes with recentchanges rc_id from 1 to 100
...migrating rc_id from 1 to 100
STDERR: [3f2156535a55003e0b1889b8] [no req] Wikimedia\Rdbms\DBQueryError from line 1587 of /srv/wiki.openstreetmap.org/w/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: INSERT INTO `cu_changes` (cuc_timestamp,cuc_user,cuc_user_text,cuc_namespace,cuc_title,cuc_comment,cuc_minor,cuc_page_id,cuc_this_oldid,cuc_last_oldid,cuc_type,cuc_ip,cuc_ip_hex) VALUES ('20200204191942',NULL,'MediaWiki default','0','Main_Page','','0','1','1','0','1','127.0.0.1','7F000001')
Function: PopulateCheckUserTable::doDBUpdates
Error: 1048 Column 'cuc_user' cannot be null (localhost)
Backtrace:
#0 /srv/wiki.openstreetmap.org/w/includes/libs/rdbms/database/Database.php(1556): Wikimedia\Rdbms\Database->getQueryExceptionAndLog(string, integer, string, string)
#1 /srv/wiki.openstreetmap.org/w/includes/libs/rdbms/database/Database.php(1274): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /srv/wiki.openstreetmap.org/w/includes/libs/rdbms/database/Database.php(2149): Wikimedia\Rdbms\Database->query(string, string)
#3 /srv/wiki.openstreetmap.org/w/extensions/CheckUser/maintenance/populateCheckUserTable.php(98): Wikimedia\Rdbms\Database->insert(string, array, string)
#4 /srv/wiki.openstreetmap.org/w/maintenance/Maintenance.php(1719): PopulateCheckUserTable->doDBUpdates()
#5 /srv/wiki.openstreetmap.org/w/maintenance/update.php(215): LoggedUpdateMaintenance->execute()
#6 /srv/wiki.openstreetmap.org/w/maintenance/doMaintenance.php(96): UpdateMediaWiki->execute()
#7 /srv/wiki.openstreetmap.org/w/maintenance/update.php(275): require_once(string)
#8 {main}
---- End output of php maintenance/update.php --quick ----
Ran php maintenance/update.php --quick returned 255Expected Results:
Installation succeeds.
Additional Information:
Looking at the database there is only one change present:
mysql> select rc_id, rc_user from recentchanges; +-------+---------+ | rc_id | rc_user | +-------+---------+ | 1 | 0 | +-------+---------+ 1 row in set (0.00 sec)
That change is mode by user 0 however, which doesn't seem to exist:
mysql> select user_id, user_name from user; +---------+--------------+ | user_id | user_name | +---------+--------------+ | 2 | Abuse filter | | 1 | Admin | +---------+--------------+ 2 rows in set (0.00 sec)
In turn that seems to lead to trying to insert null into the cu_changes table.