是否可以动态地向 Django 添加新的数据库连接?
我有一个使用多个数据库(django 1.2.1)的应用程序,在运行时,它允许创建新的数据库。我需要立即使用这个新数据库 ( django.db.connections[db_alias]
)。是否可以不重启服务器?在这里和那里使用模块 reload
?
感谢您的时间。
最佳答案
有可能……但不推荐……
您可以访问当前的连接处理程序...
使用这样的东西:
from django.db import connections
if not alias in connections.databases:
connections.databases[alias] = connections.databases['default'] # Copy 'default'
connections.databases[alias]['NAME'] = alias
确保在当前线程上有任何数据库事件时不要尝试向数据库字典添加新别名。
您需要克服的一个问题是,此代码需要放置在某个地方,以便在尝试访问数据库之前它始终会被当前线程触及。我使用中间件来实现这一点。
关于database - 可以动态刷新 Django 连接吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3158843/