getRecordsToUpdateCount(); return sprintf( 'The language key "default" for backend users has been replaced with "en". ' . 'This wizard migrates %d backend user record(s) to use "en" instead of "default".', $count ); } public function updateNecessary(): bool { return $this->getRecordsToUpdateCount() > 0; } public function getPrerequisites(): array { return [ DatabaseUpdatedPrerequisite::class, ]; } public function executeUpdate(): bool { $connection = $this->connectionPool->getConnectionForTable(self::TABLE_NAME); $connection->update( self::TABLE_NAME, ['lang' => 'en'], ['lang' => 'default'] ); return true; } private function getRecordsToUpdateCount(): int { $queryBuilder = $this->getPreparedQueryBuilder(); return (int)$queryBuilder ->count('uid') ->from(self::TABLE_NAME) ->where( $queryBuilder->expr()->eq( 'lang', $queryBuilder->createNamedParameter('default') ) ) ->executeQuery() ->fetchOne(); } private function getPreparedQueryBuilder(): QueryBuilder { $queryBuilder = $this->connectionPool->getQueryBuilderForTable(self::TABLE_NAME); $queryBuilder->getRestrictions()->removeAll(); return $queryBuilder; } }