Implement database upgrade for indexes
[cascardo/ipsilon.git] / ipsilon / providers / openid / store.py
index e759bca..40e8b8e 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING
 
-from ipsilon.util.data import Store, UNIQUE_DATA_COLUMNS
+from ipsilon.util.data import Store, UNIQUE_DATA_TABLE
 
 from openid import oidutil
 from openid.association import Association
@@ -79,9 +79,19 @@ class OpenIDStore(Store, OpenIDStoreInterface):
                 self.del_unique_data('association', iden)
 
     def _initialize_schema(self):
-        q = self._query(self._db, 'association', UNIQUE_DATA_COLUMNS,
+        q = self._query(self._db, 'association', UNIQUE_DATA_TABLE,
                         trans=False)
         q.create()
 
     def _upgrade_schema(self, old_version):
-        raise NotImplementedError()
+        if old_version == 1:
+            # In schema version 2, we added indexes and primary keys
+            # pylint: disable=protected-access
+            table = self._query(self._db, 'association', UNIQUE_DATA_TABLE,
+                                trans=False)._table
+            self._db.add_constraint(table.primary_key)
+            for index in table.indexes:
+                self._db.add_index(index)
+            return 2
+        else:
+            raise NotImplementedError()