django 连接到 mysql 和 mongodb

Posted

技术标签:

【中文标题】django 连接到 mysql 和 mongodb【英文标题】:django connect to mysql and mongodb 【发布时间】:2021-08-12 14:16:57 【问题描述】:

我有 2 个数据库 mysql 和 mongo。在 mysql 上人们保存所有数据,在 mongo 上只保存图像。我是这样定义的

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '*****',
        'USER': '*****',
        'PASSWORD': '*****',
        'HOST': '1*****',
        'PORT': '1*****',
        'TEST': 
            'NAME': '*****',
            # 'CHARSET': 'utf8',
        ,
        'mongodb':  
            'ENGINE': 'djongo',
            'NAME': '*****',
            'USER': '*****',
            'PASSWORD': '*****',
            'HOST': '*****',
            'PORT': '*****',
            'TEST': 
                'NAME': '*****',
                # 'CHARSET': 'utf8',
            ,
        

    

现在我想在 mongodb 上运行 inspectdb,我发现了这个错误

manage.py inspectdb --database mongodb
django.db.utils.ConnectionDoesNotExist: The connection mongodb doesn't exist

主机密码端口没问题

【问题讨论】:

【参考方案1】:

您在与'TEST'相同 级别写入mongodb,这意味着您只定义了一个 数据库,而mongodb 是一个那个字典的键。

因此,您应该像default 数据库一样在相同 级别指定mongodb 数据库:

DATABASES = 
    'default': 
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '*****',
        'USER': '*****',
        'PASSWORD': '*****',
        'HOST': '1*****',
        'PORT': '1*****',
        'TEST': 
            'NAME': '*****',
            # 'CHARSET': 'utf8',
        
    ,
    'mongodb':  
        'ENGINE': 'djongo',
        'NAME': '*****',
        'USER': '*****',
        'PASSWORD': '*****',
        'HOST': '*****',
        'PORT': '*****',
        'TEST': 
            'NAME': '*****',
            # 'CHARSET': 'utf8',
        ,
    

【讨论】:

以上是关于django 连接到 mysql 和 mongodb的主要内容,如果未能解决你的问题,请参考以下文章

Django docker 容器无法连接到 mysql 容器,出现错误“无法连接到 'db' (111) 上的 MySQL 服务器”)

将 Django 连接到 VPS 上的 MySql 数据库

无法使用便携式 Xampp 通过 Django 连接到 MySQL

如何使用 Windows 将我的 Django 项目连接到 MySql?

将 Django 连接到 MySQL 错误“您安装了 mysqlclient 吗?”

无法使用 Django 应用程序从容器连接到 MySQL docker 容器