Hello.
It won't work using standard method.
Use this method. This is little bit hard code. :(
import mongoengine
import os
DEFAULT_DB = "default_db"
class DynamicAliasModel(mongoengine.Document):
# .... model definition.
@classmethod
def _get_db(cls):
dynamic_alias = os.environ.get("db_alias", DEFAULT_DB )
return mongoengine.connection.get_db(dynamic_alias)
if you need to change variable os.environ["db_alias"] you should delete cached collection instance.
from mongoengine import base
# Too Danger :( May be slow some code.
for key, doc_class in base._document_registry.items():
doc_class._collection = None # Remove cache collection
On Fri, Jan 27, 2012 at 3:22 AM, JDDJ
<jaidee...@gmail.com> wrote:
i am using dev version of mongoengine (0.5.3), and want to know if its
possible to change a document definition db_alias dynamically.
--
Хүндэтгэсэн Анхбаяр