From edca2d989137680093c4acdcaf6ca4029f11a335 Mon Sep 17 00:00:00 2001 From: Daniel Wagner-Hall Date: Tue, 8 Mar 2016 17:32:29 +0000 Subject: [PATCH] Idempotent-ise schema update script If any ASes don't have an ID, the schema will fail, and then it will error when trying to add the column again. --- synapse/storage/schema/delta/30/as_users.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/synapse/storage/schema/delta/30/as_users.py b/synapse/storage/schema/delta/30/as_users.py index 4cf4dd091..4da3c59de 100644 --- a/synapse/storage/schema/delta/30/as_users.py +++ b/synapse/storage/schema/delta/30/as_users.py @@ -20,7 +20,11 @@ logger = logging.getLogger(__name__) def run_upgrade(cur, database_engine, config, *args, **kwargs): # NULL indicates user was not registered by an appservice. - cur.execute("ALTER TABLE users ADD COLUMN appservice_id TEXT") + try: + cur.execute("ALTER TABLE users ADD COLUMN appservice_id TEXT") + except: + # Maybe we already added the column? Hope so... + pass cur.execute("SELECT name FROM users") rows = cur.fetchall()