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 - 连接到其他数据库进行测试

Django 不会连接到 Redis Docker 容器

将桌面和移动客户端连接到 Django 和 Sails MVC 网络框架

将 Django 连接到 Google Cloud SQL

django 模型创建连接到 mssql

Django 无法在 Docker 设置中连接到 Postgres