如何在Django中使用OrientDB?

时间:2018-10-08 19:32:03

标签: python django orientdb non-relational-database

我正在构建一个使用关系数据库(用于开发目的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数据库中创建新用户,我都可以使用Signal post_save

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

似乎应该有一种更清洁的方法。

1 个答案:

答案 0 :(得分:2)

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

Django officially supports PostgreSQL,MySQL,SQLite和Oracle。 SAP SQL Anywhere,IBM DB2,Microsoft SQL Server,Firebird和ODBC有third-party个后端。

有一个abandoned project试图为Django提供OrientDB后端,但是很长一段时间没有更新,可能需要很多的爱:

  

该项目已不再维护,可以随意进行分叉并保持其生存状态。

无论您选择如何进行,都应该看看OrientDB's Python library