redis-om-python
redis-om-python copied to clipboard
support late creation of DB connection using callable for Meta.database
Fix for #519:
- When
RedisModel.Meta.database
has not been set, the meta class won't set it. No DB connection is configured or opened. - When
MyRedisModel.db()
is called, the old behavior is retained: ifMyRedisModel.Meta.database
is set, it'll be used, otherwiseget_redis_connection()
is called.- When
MyRedisModel.Meta.database
is a function object, it is executed and its return value is returned. - Subsequent calls to
MyRedisModel.db()
return the same object.
- When
So now, when your database address is not known at import time, you set Meta.database
to a function object that fetches that information at runtime, as late as possible (upon DB usage).
This is a big relief. Works ...
- when testing with JsonModel/EmbeddedJsonModels without spinning up a redis instance.
- when Models are simply used to exchange data between two system or classes (DTOs).
Thanks. Hope this get's merged asap.