summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
Diffstat (limited to 'synapse/storage')
-rw-r--r--synapse/storage/presence.py6
-rw-r--r--synapse/storage/schema/delta/v3.sql34
-rw-r--r--synapse/storage/schema/presence.sql2
3 files changed, 38 insertions, 4 deletions
diff --git a/synapse/storage/presence.py b/synapse/storage/presence.py
index a529104f4d..da40c0454c 100644
--- a/synapse/storage/presence.py
+++ b/synapse/storage/presence.py
@@ -35,17 +35,17 @@ class PresenceStore(SQLBaseStore):
         return self._simple_select_one(
             table="presence",
             keyvalues={"user_id": user_localpart},
-            retcols=["state", "status_msg", "mtime"],
+            retcols=["presence", "status_msg", "mtime"],
         )
 
     def set_presence_state(self, user_localpart, new_state):
         return self._simple_update_one(
             table="presence",
             keyvalues={"user_id": user_localpart},
-            updatevalues={"state": new_state["state"],
+            updatevalues={"presence": new_state["presence"],
                           "status_msg": new_state["status_msg"],
                           "mtime": self._clock.time_msec()},
-            retcols=["state"],
+            retcols=["presence"],
         )
 
     def allow_presence_visible(self, observed_localpart, observer_userid):
diff --git a/synapse/storage/schema/delta/v3.sql b/synapse/storage/schema/delta/v3.sql
new file mode 100644
index 0000000000..589de8e14e
--- /dev/null
+++ b/synapse/storage/schema/delta/v3.sql
@@ -0,0 +1,34 @@
+/* Copyright 2014 matrix.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+-- SQLite3 doesn't support renaming or dropping columns. We'll have to go the
+-- long way round
+
+CREATE TABLE NEW_presence(
+  user_id INTEGER NOT NULL,
+  presence INTEGER,
+  status_msg TEXT,
+  mtime INTEGER,
+  FOREIGN KEY(user_id) REFERENCES users(id)
+);
+
+-- rename the 'state' field to 'presence'
+INSERT INTO NEW_presence (user_id, presence, status_msg, mtime)
+  SELECT user_id, state, status_msg, mtime FROM presence;
+
+DROP TABLE presence;
+ALTER TABLE NEW_presence RENAME TO presence;
+
+PRAGMA user_version = 3;
diff --git a/synapse/storage/schema/presence.sql b/synapse/storage/schema/presence.sql
index b1081d3aab..e8736ee87b 100644
--- a/synapse/storage/schema/presence.sql
+++ b/synapse/storage/schema/presence.sql
@@ -14,7 +14,7 @@
  */
 CREATE TABLE IF NOT EXISTS presence(
   user_id INTEGER NOT NULL,
-  state INTEGER,
+  presence INTEGER,
   status_msg TEXT,
   mtime INTEGER, -- miliseconds since last state change
   FOREIGN KEY(user_id) REFERENCES users(id)