使用SQLAlchemy和Postgres处理Flask中多个、大量数据库之间切换的最佳方法

2024-04-23 23:06:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大型应用程序,有多个数据库,有相同的模式。实现什么是最好的解决方案,这样我可以让用户动态地在数据库之间切换以进行查询。为每个数据库创建一个引擎并不是一个解决方案,因为我收到一个“too many connections”postgres错误。这里的主要问题是创建了太多的引擎,那么有没有办法在使用后移除引擎?数据库数量将达到数千个,同时有几百个用户。在

谢谢。在

编辑:这是连接代码

engine = create_engine(datbase_uri)  
session = sessionmaker(bind=engine)

^每次需要连接到特定数据库时都会执行此操作。并且是动态完成的(当用户在应用程序中请求时)。问题是,如果多次执行此操作,则会出现“连接太多”错误。在

关闭发动机的最佳方法是什么?在


Tags: 用户引擎数据库应用程序数量错误模式动态
1条回答
网友
1楼 · 发布于 2024-04-23 23:06:37

我们以前也有过同样的问题。在我们的多租户应用程序中,我们使用set search_path to <schemaName>psqlquery从特定客户机为dml提供服务。您可以检查SQLAlchemyhere的详细实现

关于too many connections问题,最好使用连接池。SQLAlchemy的答案是here

相关问题 更多 >