1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 08:42:41 +01:00
phorge-phorge/resources/sql/autopatches/20170410.calendar.01.repair.php

43 lines
1 KiB
PHP
Raw Normal View History

<?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);
}