是否可以动态添加新的数据库连接到Django?
我有一个使用多个数据库的应用程序(django 1.2.1),并且在运行时,允许创建新数据库。我需要立即使用这个新数据库(django.db.connections[db_alias]
)。没有服务器重启可以吗?在这里和那里使用模块reload
?
感谢您的时间。
答案 0 :(得分: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
当前线程上存在任何数据库活动时,请确保不要尝试向数据库字典添加新别名。
您需要克服的一个问题是,在尝试访问数据库之前,如果当前线程始终触及此代码,则需要将此代码放在某处。我使用中间件来实现这一目标。