[ 
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)

Reply via email to