Django 多数据库路由

2024-03-22

我一直在使用手动数据库选择来处理具有两个独立数据库的项目。我已经在设置中定义了我的数据库。

经过进一步阅读后,似乎数据库路由实际上是解决此问题的方法。然而,在阅读了这里的文档和一些相关帖子后,我比以往任何时候都更加困惑。

在我的设置中我有:

DATABASES = {
    'default': {
       .... 
    },
    'my_db2': {
       ....
    }
}

DATABASE_ROUTERS = ['myapp2.models.MyDB2Router',]

我知道我必须定义我的路由器类(我think in 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:导入数据库时​​出错 router JournalRouter:“无法导入名称连接

谁能帮助我了解发生了什么以及出了什么问题?非常感谢任何帮助。


好吧,所以我只是解决了我自己的问题。路由器类进入一个名为 routers.py 的单独文件,位于/myapp2. No 元.app_标签是必需的,因为我猜它是自动分配的。希望这对某人有帮助。我也记录了这个过程here http://djangosteps.wordpress.com/2011/11/08/multiple-database-implementation-in-django/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 多数据库路由 的相关文章

随机推荐

  • Java7 nio2 有可用的内存文件系统实现吗?

    我一直在寻找内存中的 nio2 文件系统实现 这将使我能够更轻松地测试依赖于 IO 的代码 看来 Java 本身只提供了 在我的 JDK 中 Win32FileSystem and a ZipFileSystem 它似乎收缩包装 http
  • 当重复应用于一系列计算时,ROUND_HALF_EVEN 为何以及如何最小化累积误差?

    我听说 ROUND HALF EVEN 是金融数据计算中首选的舍入模式 我很想知道这种舍入模式为何以及如何减少 javadoc BigDecimal 1 4 2 中所述的累积误差 谢谢 院长 From 维基百科 http en wikipe
  • Laravel:验证最大文件大小?

    我正在尝试在 Laravel 中验证最大文件大小为 500kb validator Validator make request gt all file gt size 500 但这表明该文件应该正好 500kb 大 如何编辑此规则 使其在
  • Django:将参数传递给原始 SQL 查询时 MySQL 语法错误

    我正在尝试执行原始 SQL 查询 如下所示 test Poll objects raw SELECT FROM s polls poll 并导致错误 ProgrammingError at 1064 You have an error in
  • Visual Studio 2012 JavaScript 智能感知不工作

    我的笔记本电脑和台式机上安装了 Visual Studio 2012 在我的台式电脑上 JavaScript 智能感知无法正常工作 对于它提取的任何方法 甚至是标准 JavaScript 调用 我都会收到消息 Intellisense 无法
  • 如何将 Html.Action 附加到 jquery

    我可以添加吗 report html Html Action ReportPage new id Model GoalId 这里的报告是我想要放置操作结果的div的id ReportPage id是传递给ReportPage actionr
  • 如何在 eclipse 中添加 Android Support v7 库?

    如何在 eclipse 中添加 Android 支持 v7 库 例如 如何将 CardView 添加到 eclipse android 项目 注意 这是一个自我回答问题 因此无需浪费时间回答 当然 如果您有什么需要补充的 欢迎补充 From
  • 水豚在我的电脑中打开一个html文件

    我的电脑中有一个 html 文件 我想使用 Capybara 打开该文件来测试它 你能帮我解决这个问题吗 P S 该 html 文件是在我的应用程序中自动创建的 我非常感谢任何帮助我解决这个问题的想法 谢谢 UPDATE 基于水豚源码her
  • HttpClient 中“连接被拒绝”异常和超时之间的区别

    我正在尝试确定网络上的设备是否正在使用 Java 运行 Web 服务器 为此 我使用 Apache 的 HttpClient 我发送一个请求 如果设备运行网络服务器 我就会收到响应 非常简单 但是 如果网络服务器没有运行 那么我观察到会发生
  • iPhone KERN_INVALID_ADDRESS

    我不确定为什么会收到此错误 并且无法找出原因 不过 这只发生在设备上 模拟器按预期运行 没有错误 有人能理解这个崩溃日志吗 Exception Type EXC BAD ACCESS SIGSEGV Exception Codes KERN
  • 将数组作为 axios 请求中的参数传递

    我需要通过以下方式提出请求axios 其中我想将这种类型的数组作为数组传递 1 2 3 4 我需要这些数据从我的后端进行选择查询 我的问题是 我应该使用GET or POST请求以及传递该数组的正确方法是什么 你可以POST它作为 json
  • Netbeans 分析器的“Self Time”实际上是什么意思?

    我一直对我的简单游戏需要运行的时间感兴趣 因此我使用了 Netbeans Java 分析器 Java 1 7 并且我可以在 热点 选项卡中看到 Self Time 和 Inspirations 列 例如 我的渲染方法有 自拍时间 1025
  • 如何向表单添加两个“on Submit=”值?

    我正在尝试使用两个单独的 JavaScript 函数来验证我的表单
  • 防止 mysql 在 where 子句中将字符串转换为 int

    我试图阻止 mysql 在 where 子句中将字符串转换为 int 以下查询返回订单的正确行 SELECT delivery name FROM orders WHERE orders id 985225 以下查询也返回与将我的字符串转换
  • 如何移动张量中的值

    我有形状为 batch size A 的张量 T 和形状 batch size 的张量 S 和移位参数 我想将 T b 中的值向右移动 S b 个位置 应删除 T b 的最后一个 S b 元素 并将新元素设置为 0 所以基本上想做类似的事情
  • 导入错误:没有名为“队列”的模块[重复]

    这个问题在这里已经有答案了 我正在尝试导入requests模块 但我收到此错误 我的python版本是3 4 在ubuntu 14 04上运行 gt gt gt import requests Traceback most recent c
  • 在 xCode 界面生成器中,是否可以使用 control+drag 将视图元素与文件所有者连接起来?

    通过 TightVNC 连接到 Mac Mini 来处理 iPhone 应用程序 Interface Builder 中用于将视图元素连接到文件所有者的控制 拖动操作不起作用 我没有看到连接线 当我将键盘 鼠标和显示器连接到 Mini 并直
  • 在启用 ARC 的 iOS 上将 CALayer 的内容设置为 CGImageRef

    以下代码在手动内存管理下可以正常编译 但在 ARC 下会失败 CALayer layer CALayer layer layer contents UIImage imageNamed dial png CGImage 错误是 自动引用计数
  • 按特定顺序排列的订购列表

    我有一个List我有新的顺序List应该有以下项目int 我想要该项目List应根据中的项目重新订购int 这是我执行此操作的代码 class Program static void Main string args List
  • Django 多数据库路由

    我一直在使用手动数据库选择来处理具有两个独立数据库的项目 我已经在设置中定义了我的数据库 经过进一步阅读后 似乎数据库路由实际上是解决此问题的方法 然而 在阅读了这里的文档和一些相关帖子后 我比以往任何时候都更加困惑 在我的设置中我有 DA