4

是否可以即时向 Django 添加新的数据库连接?

我有一个使用多个数据库的应用程序(django 1.2.1),并且在运行时允许创建新数据库。我需要立即使用这个新数据库(django.db.connections[db_alias])。是否可以不重新启动服务器?reload在这里和那里使用模块?

感谢您的时间。

4

1 回答 1

3

有可能...但不推荐...您可以访问当前的连接处理程序...

使用这样的东西:

from django.db import connections
if not alias in connections.databases:
    connections.databases[alias] = connections.databases['default']  # Copy 'default'
    connections.databases[alias]['NAME'] = alias              

确保在当前线程上存在任何数据库活动时,不要尝试向数据库字典添加新别名。

您需要克服的一个问题是,在尝试访问数据库之前,如果当前线程始终会触及该代码,则需要将该代码放置在某个地方。我使用中间件来实现这一点。

于 2011-10-04T22:45:56.803 回答