Cqlengine multilpe keyspaces

Ich verwende Cassandra von Python 3.4.0 mit Cassandra-Treiber 2.5.0 (und Cqlengine Modelle).

App-Daten werden verteilt in: ein Keyspace für Management und ein Keyspace pro Benutzer. Ich muss zwei Keyspaces abfragen: master + custom.

Ich habe eine winzige Klasse für die Keyspace-Umschaltung kodiert, die wie folgt verwendet wird:

with keyspace(new_keyspace): #do stuff with new_keyspace #do stuff with previous keyspace 

Meine erste Version war:

 class keyspace(object): def __init__(self, new_keyspace): self.new_keyspace = new_keyspace self.old_keyspace = get_session().keyspace def __enter__(self): session = get_session() session.set_keyspace() connection.set_session(session) def __exit__(self, type, value, traceback): session = get_session() session.set_keyspace(self.old_keyspace) connection.set_session(session) 

Und funktioniert überhaupt nicht Ich habe die Klasse mit:

 class keyspace(object): def __init__(self, new_keyspace): self.new_keyspace = new_keyspace self.old_keyspace = cassandra.cqlengine.models.DEFAULT_KEYSPACE def __enter__(self): cassandra.cqlengine.models.DEFAULT_KEYSPACE = self.new_keyspace def __exit__(self, type, value, traceback): cassandra.cqlengine.models.DEFAULT_KEYSPACE = self.old_keyspace 

Letzter Code funktioniert, aber ich fühle mich unsicher, wenn du DEFAULT_KEYSPACE benutzt.

Warum get_session (), set_session hat keine Wirkung?

cassandra.cqlengine.models.DEFAULT_KEYSPACE sicher, um dies zu überprüfen?

Vielen Dank

Python ist die beste Programmiersprache der Welt.