【发布时间】:2018-08-27 14:54:20
【问题描述】:
我知道我可以使用using() 来选择settings.py 中定义的数据库,用于以下操作:
User.objects.using('users_db').get(id=5).delete()
问题是我需要在服务器运行时动态创建/复制/删除几个不同的数据库(无需重新启动服务器)。这样我就可以更改settings.py 中的数据库配置,并通过使用using() 在我的代码中选择活动数据库。
更新:请注意,由于在从django.db 导入connections 后,我们可以通过connections.databases 访问DB 设置,因此主要问题不是如何在@987654329 中定义DB @。我正在寻找可以创建/复制/删除数据库的 django ORM 命令。
【问题讨论】:
-
Django 可能不是这个问题的正确解决方案。换句话说,要解决这个问题 - 您必须跳出 ORM 并“手动”编写连接到其他数据库的数据库代码,然后执行查询。考虑将此部分卸载到您从 Django 调用的单独(香草)Python 脚本中。
-
为什么需要像这样动态更改数据库?
-
我需要创建/复制/删除数据库的原因是有几个相互隔离的数据集合。用户可以决定选择一组特殊的数据并为它们执行处理,然后他可以创建新的/复制和更改以前的数据等等。
标签: django database python-3.x orm