2

我遇到了需要使用 TurboGear 框架访问 Mongodb 服务器中的一组数据库的需求。在那里我需要列出数据库,并允许用户选择一个并继续前进。在我看来,TurboGear 确实有助于使用多个数据库,但需要在 development.ini 中事先指定。

有没有办法只连接到数据库服务器(或首先连接到特定数据库),然后获取数据库列表并即时选择一个?

4

1 回答 1

2

对于SQLAlchemy,您可以使用更智能的 Session 来实现类似的目标。

只需子类化sqlalchemy.orm.Session该类并覆盖该get_bind(self, mapper=None, clause=None)方法。每次会话必须决定使用哪个引擎并预计返回引擎本身时,都会调用该方法。然后,您可以在任何您喜欢的地方存储引擎列表并返回正确的引擎。

当使用Ming/MongoDB时,可能通过子类化ming.Sessionmodel/session.py 并覆盖该ming.Session.db属性以返回正确的数据库来实现相同的目的。

于 2012-05-18T10:05:55.453 回答