首页 > 解决方案 > 如何在 Django 中使用 OrientDB?

问题描述

我正在构建一个使用关系数据库(用于开发目的 SQLite)和非关系数据库(OrientDB)的 Django 项目。这是我第一次使用非关系数据库,我很难用 Django 设置它。

在我的项目中使用 OrientDB 只是为了跟踪朋友关系和朋友的朋友关系,而所有其他用户数据都存储在我的关系数据库中。

我知道我需要在我的设置文件中注册数据库。我正在尝试做这样的事情:

#setting.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },

    'friends': {
        'NAME': 'friends',
        'ENGINE': 'django.db.backends.orientdb',
        'USER': 'root',
        'PASSWORD': 'hello',
        'HOST': '',
        'PORT': '2480',
    }
}

但是,当我这样做时,我得到了错误:

没有名为“django.db.backends.orientdb”的模块

这个后端模块是我必须自己创建的,还是可以在我需要完成特定任务时手动连接到代码中的数据库?例如,每当有人在我的 SQLite DB 中创建新用户时,我可以使用post_saveSignal

  1. 连接到 OrientDb,
  2. 在 Orient DB 中创建一个朋友实例,并且
  3. 从 OrientDB 断开连接?

似乎应该有一种更清洁的方式来做到这一点。

标签: pythondjangoorientdbnon-relational-database

解决方案


这几乎可以肯定是您需要自己构建的东西,尽管您的用例听起来并不像它需要整个 Django 后端。一些手动查询可能就足够了。

Django正式支持PostgreSQL、MySQL、SQLite 和 Oracle。SAP SQL Anywhere、IBM DB2、Microsoft SQL Server、Firebird 和 ODBC有第三方后端。

有一个废弃的项目试图为 Django 提供 OrientDB 后端,但它已经很长时间没有更新了,可能需要很多的爱:

该项目不再维护,请随时 fork 并使其保持活力。

无论您选择如何继续,您都应该看看OrientDB 的 Python 库


推荐阅读