diff options
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/presence.py | 6 | ||||
-rw-r--r-- | synapse/storage/schema/delta/v3.sql | 34 | ||||
-rw-r--r-- | synapse/storage/schema/presence.sql | 2 |
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) |