public function upgrade2111Step1(array $stepParams)
{
$position = empty($stepParams[0]) ? 0 : $stepParams[0];
$perPage = 250;
$db = $this->db();
if (!isset($stepParams['max']))
{
$stepParams['max'] = $db->fetchOne("
SELECT MAX(user_id)
FROM xf_user_connected_account
WHERE provider = 'discord'
");
}
$userIds = $db->fetchAllColumn($db->limit("
SELECT DISTINCT user_id
FROM xf_user_connected_account
WHERE user_id > ?
AND provider = 'discord'
ORDER BY user_id
", $perPage
), $position);
if (!$userIds) { return true; }
$db->beginTransaction();
$connectedAccounts = \XF::finder('XF:UserConnectedAccount')->where([
['user_id', $userIds],
['provider', 'discord']
])->with(['User'])->fetch();
$repo = \XF::repository('XF:ConnectedAccount');
foreach ($connectedAccounts as $connectedAccount)
{
$connectedAccount->fastUpdate('provider', 'ewr_discord');
$repo->rebuildUserConnectedAccountCache($connectedAccount->User);
}
$db->commit();
$next = end($userIds);
return [$next, "{$next} / {$stepParams['max']}", $stepParams];
}