Django:动态创建/复制/删除DB

时间:2018-03-19 05:26:45

标签: django database python-3.x orm

我知道我可以使用settings.py来选择User.objects.using('users_db').get(id=5).delete() 中定义的数据库,以执行以下操作:

settings.py

问题是我需要在服务器运行时动态创建/复制/删除几个不同的数据库(无需重新启动服务器)。这样我就可以在using()中更改数据库配置,并使用connections.databases在我的代码中选择活动数据库。

更新:请注意,由于我们从connections导入django.db后可以通过setting.py访问数据库设置,因此主要问题不是如何在An uncaught Exception was encountered Type: Exception Message: System error Loading pages (1/6) [> ] 0% [======> ] 10% [=======> ] 12% Warning: SSL error ignored [========> ] 14% [=========> ] 16% [==========> ] 18% [============> ] 20% [=============> ] 23% [===============> ] 25% [================> ] 27% [=================> ] 29% [==================> ] 31% [===================> ] 33% [=====================> ] 35% [======================> ] 38% [========================> ] 40% [=========================> ] 43% [===========================> ] 45% [============================> ] 47% [=============================> ] 49% [=====================================> ] 63% [==========================================> ] 70% [=============================================> ] 76% [=================================================> ] 83% [============================================================] 100% Counting pages (2/6) [============================================================] Object 1 of 1 Resolving links (4/6) [============================================================] Object 1 of 1 Loading headers and footers (5/6) Printing pages (6/6) [> ] Preparing [==============================> ] Page 1 of 2 [============================================================] Page 2 of 2 Done Filename: application/libraries/Wkhtmltopdf.php Line Number: 866 Backtrace: File: /var/www/admin/index.php Line: 315 Function: require_once 中定义数据库。我正在搜索可以创建/复制/删除数据库的django ORM命令。

1 个答案:

答案 0 :(得分:0)

两种方法可以解决这个问题。

  1. 您可以使用postgresql并使用json字段存储您的信息。 在这种情况下,您可以使用所有django功能,这是您尝试实现的建议方式。 来源 - Jsonfield Django
  2. 您可以使用mongodb并创建动态数据库。但你不能使用Django ORM。 (有一个django-mongodb引擎 - Django-mongodb-engine 但这对创建和删除动态数据库没有用处)。因此,您应该使用Pymongo并在其周围编写包装函数来创建动态数据库。