mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-23 15:22:41 +01:00
d4d46501ed
Summary: Fixes T12488. Some events appear to have survived earlier migrations without getting completely fixed. Fix them. Test Plan: - Ran migration locally with `bin/storage upgrade` (but: I could not reproduce this problem locally). - Ran migration in production and saw ICS import stop fataling. Reviewers: chad Reviewed By: chad Maniphest Tasks: T12488 Differential Revision: https://secure.phabricator.com/D17642
42 lines
1 KiB
PHP
42 lines
1 KiB
PHP
<?php
|
|
|
|
// See T12488. Some events survived "20161004.cal.01.noepoch.php" without
|
|
// having "utcInstanceEpoch" computed, which breaks ICS export. This appears
|
|
// to be the result of some bug which has been fixed in the meantime, so just
|
|
// redo this part of the migration.
|
|
|
|
$table = new PhabricatorCalendarEvent();
|
|
$conn = $table->establishConnection('w');
|
|
$table_name = $table->getTableName();
|
|
|
|
$viewer = PhabricatorUser::getOmnipotentUser();
|
|
$all_events = id(new PhabricatorCalendarEventQuery())
|
|
->setViewer($viewer)
|
|
->execute();
|
|
foreach ($all_events as $event) {
|
|
$id = $event->getID();
|
|
|
|
if (!$event->getInstanceOfEventPHID()) {
|
|
// Not a child event, so no instance epoch.
|
|
continue;
|
|
}
|
|
|
|
if ($event->getUTCInstanceEpoch()) {
|
|
// Already has an instance epoch.
|
|
continue;
|
|
}
|
|
|
|
try {
|
|
$event->updateUTCEpochs();
|
|
} catch (Exception $ex) {
|
|
phlog($ex);
|
|
continue;
|
|
}
|
|
|
|
queryfx(
|
|
$conn,
|
|
'UPDATE %T SET utcInstanceEpoch = %nd WHERE id = %d',
|
|
$table_name,
|
|
$event->getUTCInstanceEpoch(),
|
|
$id);
|
|
}
|