Page MenuHomePhorge

No OneTemporary

diff --git a/resources/sql/autopatches/20170824.search.01.saved.php b/resources/sql/autopatches/20170824.search.01.saved.php
new file mode 100644
index 0000000000..ab1485ebd5
--- /dev/null
+++ b/resources/sql/autopatches/20170824.search.01.saved.php
@@ -0,0 +1,46 @@
+<?php
+
+// Before T12956, normal users could reorder (and disable) builtin queries.
+// After that change, there is a single global order which can only be
+// changed by administrators.
+
+// This migration removes the rows which store individual reordering and
+// disabling of queries. If a user had reordered queries in such a way that
+// a builtin query was at the top of the list, we try to write a preference
+// which pins that query as their default to minimize disruption.
+
+$table = new PhabricatorNamedQuery();
+$conn = $table->establishConnection('w');
+
+$config_table = new PhabricatorNamedQueryConfig();
+
+foreach (new LiskMigrationIterator($table) as $named_query) {
+
+ // If this isn't a builtin query, it isn't changing. Leave it alone.
+ if (!$named_query->getIsBuiltin()) {
+ continue;
+ }
+
+ // If the user reordered things but left a builtin query at the top, pin
+ // the query before we remove the row.
+ if ($named_query->getSequence() == 1) {
+ queryfx(
+ $conn,
+ 'INSERT IGNORE INTO %T
+ (engineClassName, scopePHID, properties, dateCreated, dateModified)
+ VALUES
+ (%s, %s, %s, %d, %d)',
+ $config_table->getTableName(),
+ $named_query->getEngineClassName(),
+ $named_query->getUserPHID(),
+ phutil_json_encode(
+ array(
+ PhabricatorNamedQueryConfig::PROPERTY_PINNED =>
+ $named_query->getQueryKey(),
+ )),
+ PhabricatorTime::getNow(),
+ PhabricatorTime::getNow());
+ }
+
+ $named_query->delete();
+}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Jan 19, 16:32 (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1126506
Default Alt Text
(1 KB)

Event Timeline