Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:在运行时指定动态数据库_Django_Multiple Databases_Django 3.0 - Fatal编程技术网

Django:在运行时指定动态数据库

Django:在运行时指定动态数据库,django,multiple-databases,django-3.0,Django,Multiple Databases,Django 3.0,我正在尝试在Django中设置一个系统,通过该系统我可以指定在运行时使用的数据库连接。我觉得我可能需要尽可能地降低级别,但我希望尽可能地使用Django的习惯用法,也许尽可能地扩展它 总的来说,我有一个集中的数据库来存储元信息数据集,但实际的数据集是在运行时作为动态模型在数据库中创建的。我需要能够指定在运行时连接到哪个数据库,然后将数据提取出来 我有如下想法: db = {} db['ENGINE'] = 'django.db.backends.postgresql' db['OPTIONS'

我正在尝试在Django中设置一个系统,通过该系统我可以指定在运行时使用的数据库连接。我觉得我可能需要尽可能地降低级别,但我希望尽可能地使用Django的习惯用法,也许尽可能地扩展它

总的来说,我有一个集中的数据库来存储元信息数据集,但实际的数据集是在运行时作为动态模型在数据库中创建的。我需要能够指定在运行时连接到哪个数据库,然后将数据提取出来

我有如下想法:

db = {}

db['ENGINE'] = 'django.db.backends.postgresql'
db['OPTIONS'] = {'autocommit': True}
db['NAME'] = my_model_db['database']
db['PASSWORD'] = my_model_db['password']
db['USER'] = my_model_db['user']
db['HOST'] = my_model_db['host']

logger.info("Connecting to database {db} on {host}".format(db=source_db['NAME'], host=source_db['HOST']))

connections.databases['my_model_dynamic_db'] = db

DynamicObj.objects.using('my_model_dynamic_db').all()
    

有人做到了吗?如何实现呢?

你到底想用它实现什么才是真正的问题:)@AKX我有一个集中的数据库,存储元信息数据集-但实际的数据集在运行时在相关数据库中创建为动态模型。我需要能够指定在运行时连接到哪个数据库,然后将数据提取出来……你最终想用它实现什么是真正的问题:)@AKX我有一个中央数据库,存储元信息数据集-但实际数据集在运行时创建为动态模型,在相关数据库中。我需要能够指定在运行时连接到哪个数据库,然后将数据提取出来。。。