问答详情
源自:6-2 基于 Password 和 Bearer token 的 OAuth2 认证

fastapi两个子应用共用一个database

http://img3.mukewang.com/6079783f0001205003570602.jpg请问应用部署,有两个子应用公用一个database是否可行。我是将两个应用的database.py配置一模一样,但是并不可行。请问如何解决?

提问者:慕运维1179159 2021-04-16 19:44

个回答

  • duskash
    2021-10-04 12:55:55

    我来推荐一个orm 库, tortoise-orm

    这个支持异步操作 sqlite3、mysql、postgresql 三种数据库, 配置和部署都比 sqlalchemy 简单

    你说的这个问题, tortoise-orm 里面可以在初始化数据库的时候


    async def run():
    
        await Tortoise.init(
            "connections": {
                'first_db': {'engine': 'for', 'credential': 'bar'},
                'second_db': {'engine': 'foze', 'credential': 'baze'}},
            "apps": {
                'app1': {'models': '__main__', 'default_connection': 'first_db'},
                'app2': {'models': '__main__';, 'default_connection': 'second_db'}
        )
        
    connection1 = Tortoise.get_connection('first_db')
    connection2 = Tortoise.get_connection('second_db')

     到这里, 后面的 `connection1` 等就可以用 orm 操作了