ponyorm / pony

Pony Object Relational Mapper
Apache License 2.0
3.58k stars 242 forks source link

How to integrate with Dependency Injector lib #714

Open elier opened 1 month ago

elier commented 1 month ago

I'm trying to use ponyorm with a dependency injection lib like: https://python-dependency-injector.ets-labs.org/providers/resource.html

That lib is very popular, it would be great to have an example.

I'm using a resource initializing function like this:

def init_database(options):
    database = orm.Database(options)
    database.generate_mapping(create_tables=True)
    return database

class Container(containers.DeclarativeContainer):
    config = providers.Configuration()
    db = providers.Resource(init_database, config.database)

But I guess initialization is not happening at the right time, so entities are binding:

pony.orm.core.ERDiagramError: Mapping is not generated for entity 'User'