我一直在使用手动数据库选择来处理具有两个独立数据库的项目。我已经在设置中定义了数据库。
进一步阅读之后,看来数据库路由实际上是解决问题的方法。但是,在阅读了文档和此处的一些相关文章之后,我比以往更加困惑。
在我的设置中,我有:
DATABASES = {
'default': {
....
},
'my_db2': {
....
}
}
DATABASE_ROUTERS = ['myapp2.models.MyDB2Router',]
我知道我必须像这样定义路由器类(我认为在myapp2.models.py
文件中):
class MyDB2Router(object):
"""A router to control all database operations on models in
the myapp2 application"""
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'myapp2' or obj2._meta.app_label == 'myapp2':
return True
return None
def allow_syncdb(self, db, model):
if db == 'my_db2':
return model._meta.app_label == 'myapp2'
elif model._meta.app_label == 'myapp2':
return False
return None
那呢 每个模型都需要一个meta.app_label
还是自动的?除此之外,我仍然得到一个错误:
django.core.exceptions.ImproperlyConfigured:导入数据库路由器JournalRouter时出错:“无法导入名称连接
谁能帮助我了解正在发生的事情和出了什么问题?任何帮助,不胜感激。
我解决了自己的问题。路由器类放入/ myapp2下的名为routers.py的单独文件中。不需要meta.app_label,因为我猜它是自动分配的。
本文向大家介绍Django 添加数据库路由文件,包括了Django 添加数据库路由文件的使用技巧和注意事项,需要的朋友参考一下 示例 要在Django中使用多个数据库,只需在中指定每个数据库settings.py: 使用dbrouters.py文件来指定对于每种数据库操作类,哪些模型应在哪些数据库上进行操作,例如,对于存储在中的远程数据remote_data,您可能需要以下内容: 最后,将您添加d
问题内容: 我一直在评估django,并想知道以下情况是否可能。我已经看过常规的多个数据库文档,所以请不要指向我,因为据我所知,并没有提到该用例。如果我错了,我把它拿回来:) 我想要一个主数据库,我的大多数应用程序模型都将驻留在其中,但是该应用程序之一将需要动态创建数据库,这些数据库将是客户特定的数据库。 数据库路径(我计划使用sqlite)将存储在主数据库中,因此需要更改游标,但模型将保持不变。
问题内容: 背景: 我正在一个将Django与Postgres数据库一起使用的项目。在某些情况下,我们也会使用mod_wsgi,因为我的一些网络搜索都提到了它。在Web表单提交中,Django视图启动了一个需要大量时间的工作(比用户希望等待的时间还长),因此我们通过后台的系统调用来启动该工作。现在正在运行的作业需要能够读取和写入数据库。因为这项工作需要很长时间,所以我们使用多重处理来并行运行它的各
问题内容: 我有两个数据库和两个模型:管理员和用户。 我想将我的模型同步到两个数据库;admin模型到数据库A,用户模型到数据库B; 如果我将模型路径设置为和,则两个模型将同步到默认数据库。 如果我在命令中设置数据库,例如,则两个模型将同步到数据库B。 所以我的问题是,如何将两个模型同步到两个数据库? 问题答案: 我完全同意@alecxe使用数据库路由器。我目前正在使用一个管理界面来管理多个数据库
我有两个数据库和两个模型:管理员和用户。 我想将我的模型同步到两个数据库;管理模型到数据库A,用户模型到数据库B; 如果我将模型路径设置为和,这两个模型将同步到默认数据库。 如果我在命令中设置数据库,比如,那么这两个模型将同步到数据库B。 所以我的问题是,如何将这两个模型同步到两个数据库?
问题内容: 我正在尝试将Django多数据库配置与MYSQL用作默认数据库,将redshift用作分析数据库。我的配置看起来像这样: 当我尝试迁移分析应用程序时,请使用以下命令 我看到以下错误: 关于如何解决此问题的任何想法?我正在使用和 问题答案: 特定的问题是:Django想要创建一个具有主键的迁移管理表来跟踪迁移历史。Redshift不支持。 但是,这种方法更普遍的问题是,您真的不希望在Re