Page MenuHomePhabricator

D19624.diff
No OneTemporary

D19624.diff

diff --git a/resources/sql/autopatches/20180828.phriction.06.c.documentid.php b/resources/sql/autopatches/20180828.phriction.06.c.documentid.php
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20180828.phriction.06.c.documentid.php
@@ -0,0 +1,20 @@
+<?php
+
+// See T13193. We're about to drop the "documentID" column, which is part of
+// a UNIQUE KEY. In MariaDB, we must first drop the "documentID" key or we get
+// into deep trouble.
+
+// There's no "IF EXISTS" modifier for "ALTER TABLE" so run this as a PHP patch
+// instead of an SQL patch.
+
+$table = new PhrictionContent();
+$conn = $table->establishConnection('w');
+
+try {
+ queryfx(
+ $conn,
+ 'ALTER TABLE %T DROP KEY documentID',
+ $table->getTableName());
+} catch (AphrontQueryException $ex) {
+ // Ignore.
+}
diff --git a/resources/sql/autopatches/20180828.phriction.07.documentkey.sql b/resources/sql/autopatches/20180828.phriction.07.documentkey.sql
new file mode 100644
--- /dev/null
+++ b/resources/sql/autopatches/20180828.phriction.07.documentkey.sql
@@ -0,0 +1,2 @@
+ALTER TABLE {$NAMESPACE}_phriction.phriction_content
+ ADD UNIQUE KEY `key_version` (documentPHID, version);
diff --git a/src/applications/phriction/storage/PhrictionContent.php b/src/applications/phriction/storage/PhrictionContent.php
--- a/src/applications/phriction/storage/PhrictionContent.php
+++ b/src/applications/phriction/storage/PhrictionContent.php
@@ -34,7 +34,7 @@
'description' => 'text',
),
self::CONFIG_KEY_SCHEMA => array(
- 'documentID' => array(
+ 'key_version' => array(
'columns' => array('documentPHID', 'version'),
'unique' => true,
),

File Metadata

Mime Type
text/plain
Expires
Sat, May 18, 8:17 AM (2 w, 6 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6295086
Default Alt Text
D19624.diff (1 KB)

Event Timeline