Page MenuHomePhabricator

D17642.id42428.diff
No OneTemporary

D17642.id42428.diff

diff --git a/resources/sql/autopatches/20170410.calendar.01.repair.php b/resources/sql/autopatches/20170410.calendar.01.repair.php
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20170410.calendar.01.repair.php
@@ -0,0 +1,42 @@
+<?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);
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 9:03 AM (2 d, 9 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7704294
Default Alt Text
D17642.id42428.diff (1 KB)

Event Timeline