我想在Django中实现一个允许用户动态创建数据库的网页。
存储的Django模型将始终相同。 (普通用户)
场景:
我发现Here可以在Django中设置多个DB,但这意味着它们已经被创建(显然不是我的情况)。
要创建我的数据库,我可以考虑直接在DBMS上执行自定义SQL查询
from django.db import connection
def createNewDB(self,id):
with connection.cursort() as cursor:
queryStr = "\"CREATE DATABASE " + id + "\""
cursor.execute(queryStr)
但后来我没有任何线索:
如何在Django DB中保存新的数据库设置(见下文)。
如何在DB中迁移和保存模型用户
from django.core.management import call_command
call_command("migrate", interactive=False)
user.save(using='db_id')
我发现这个post谈论如何动态添加连接:
from django.db import connections
connections.databases['new-alias'] = { ... }
conn = connections['new-alias']
但同样在这种情况下,sqlite DB之前存在,所以我不确定它是否是我需要的。
那么可以创建一个到模型的数据库链接,然后将其添加到django的数据库设置中吗?
或者我应该查看我的所有数据结构? (如一个DB但多个用户模型表)
我正在使用django 2.0.5和postgreSQL 9.6但是如果解决方案不兼容我可以改变(例如sqlite)。