fastapi两个子应用共用一个database

来源:6-2 基于 Password 和 Bearer token 的 OAuth2 认证

慕运维1179159

2021-04-16 19:44

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

写回答 关注

1回答

  • 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 操作了

    duskas...

    抱歉有个地方写错了, connection1 和 connection2 应该包在 runI() 函数下面

    2021-10-04 12:56:58

    共 1 条回复 >

高性能 FastAPI 框架入门精讲

FastAPI 框架快速上手开发,结合 API 交互文档逐个讲解核心模块的使用。

12446 学习 · 87 问题

查看课程

相似问题