[
https://issues.apache.org/jira/browse/IGNITE-11502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16789750#comment-16789750
]
Dmitry Melnichuk commented on IGNITE-11502:
-------------------------------------------
Sorry if I was unclear in my first comment. I have never used Django with
Ignite. I just have some experience with web development with Django, and I
also developing a Python thin client for Ignite. These two of my activities are
totally unrelated to each other.
Django uses RDBMS for storing data. It also optionally uses key-value storage
(memcached or redis) for various internal caching (sessions, queries, template
prerenders, et c.). I thought of how nice it would be to use Ignite in both
roles, but I came to conclusion that the database part is impossible without
autoincrement fields in Ignite SQL.
Django expects of all its models to have an implicit primary key of name `id`
and type
[AutoField|https://docs.djangoproject.com/en/2.2/_modules/django/db/models/fields/#AutoField].
It is possible to set an explicit primary key of any type in your custom
model, but not in Django admin models. It means that vanilla Django, likewise
many Django extensions, could not be deployed in such a configuration without
AutoField support in default database backend. And AutoField definition is
outside of `django.db.backends` scope, so you can not easily change PK
implementation in favor of, say, UUID.
On the other hand, the solution could be easier than I initially thought it is.
There is already an [implementation of cluster-wide incremental
counter|https://apacheignite.readme.io/docs/id-generator] in Ignite. All what
is left is to make it available through the Ignite SQL. Then there is an [ODBC
backend for Django|https://github.com/lionheart/django-pyodbc]. It may make
sense, before other things, to see if it is compatible with the current Ignite
ODBC driver. But, as I said earlier, without Ignite SQL supporting
autoincrement fields the applicability of such a bundle will be limited or none.
> Django engine
> -------------
>
> Key: IGNITE-11502
> URL: https://issues.apache.org/jira/browse/IGNITE-11502
> Project: Ignite
> Issue Type: New Feature
> Reporter: Nikolai Svistov
> Priority: Critical
>
> Django supports a standard driver for working with DB.
> To work with cassandra, there is a driver - [Django Cassandra
> Engine|https://github.com/r4fek/django-cassandra-engine], but Apache Ignite
> doesn’t have a driver that allows users to work with Ignite from Django.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)