Fix reindex

This commit is contained in:
Erik Johnston 2016-09-14 10:18:30 +01:00
parent d5ae1f1291
commit 00f51493f5

View file

@ -819,11 +819,11 @@ class StateStore(SQLBaseStore):
def _background_index_state(self, progress, batch_size): def _background_index_state(self, progress, batch_size):
def reindex_txn(conn): def reindex_txn(conn):
conn.rollback() conn.rollback()
# postgres insists on autocommit for the index if isinstance(self.database_engine, PostgresEngine):
conn.set_session(autocommit=True) # postgres insists on autocommit for the index
try: conn.set_session(autocommit=True)
txn = conn.cursor() try:
if isinstance(self.database_engine, PostgresEngine): txn = conn.cursor()
txn.execute( txn.execute(
"CREATE INDEX CONCURRENTLY state_groups_state_type_idx" "CREATE INDEX CONCURRENTLY state_groups_state_type_idx"
" ON state_groups_state(state_group, type, state_key)" " ON state_groups_state(state_group, type, state_key)"
@ -831,16 +831,17 @@ class StateStore(SQLBaseStore):
txn.execute( txn.execute(
"DROP INDEX IF EXISTS state_groups_state_id" "DROP INDEX IF EXISTS state_groups_state_id"
) )
else: finally:
txn.execute( conn.set_session(autocommit=False)
"CREATE INDEX state_groups_state_type_idx" else:
" ON state_groups_state(state_group, type, state_key)" txn = conn.cursor()
) txn.execute(
txn.execute( "CREATE INDEX state_groups_state_type_idx"
"DROP INDEX IF EXISTS state_groups_state_id" " ON state_groups_state(state_group, type, state_key)"
) )
finally: txn.execute(
conn.set_session(autocommit=False) "DROP INDEX IF EXISTS state_groups_state_id"
)
yield self.runWithConnection(reindex_txn) yield self.runWithConnection(reindex_txn)