Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support late creation of DB connection using callable for Meta.database #543

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dansan
Copy link

@dansan dansan commented Jul 24, 2023

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: if MyRedisModel.Meta.database is set, it'll be used, otherwise get_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.

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).

@svabra
Copy link

svabra commented Jul 28, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants