2014-12-16 1 views
0

Я начинаю Django и разработал 1 приложение, используя mysql в качестве первичной БД, но в моем следующем проекте мне нужно использовать Cassandra db, используя https://github.com/cqlengine/cqlengine, но do не использовать https://github.com/r4fek/django-cassandra-engine (который является оберткой над cqlengine?).Настройка Cassandra DB в django с использованием cqlengine, но без использования django-cassandra-engine

У меня нет подсказки С чего начать? Я имею в виду, как и где я должен создать соединение db, а затем создавать модели в файле models.py?

Должен ли я создать соединение в init .py file? In views.py? что было бы самым эффективным способом?

будет отличным (для будущих читателей), если кто-то предоставит простую конфигурацию и модель.

ответ

3

Демо-версия twissandra должна быть хорошим примером того, как создать приложение, используя Cassandra и Django.

В этой реализации нет models.py, и соединение поддерживается в файле cass.py.

Вы увидите, что cass.py также содержит все функции, необходимые для возврата данных из базы данных C * и создания объектов, которые используются системой. Здесь вы можете заменить запросы api кодом CqlEngine.

Я надеюсь, что эти ресурсы, чтобы вы указали в правильном направлении

+0

Спасибо! но я ищу только источник cqlengine и using models.py. например 'from cqlengine import connection'' connection.setup (['127.0.0.1:9160']) ' , можете ли вы предоставить источник этого. – xyz

+0

Twissandra давно был проектом, который забыл время. Вы можете просмотреть мой ответ для соответствующего ответа CQLEngine. Хорошим примером для просмотра является: [Meat Bot by rustyrazorblade, создатель CQLEngine] (https://github.com/rustyrazorblade/meatbot/) – mbeacom

0

Rustyrazorblade показывает простой способ сделать это через его CQLEngine учебник отрасли HERE.

Вы можете легко настроить соединение, делая что-то подобное в your_app_project/модели/connection.py:

from cqlengine import management 
from cqlengine.connection import setup 

def connect(): 
    setup(["127.0.0.1", "127.0.1.1", "127.0.1.2"], "tutorial", retry_connect=True) 
    management.create_keyspace("tutorial", replication_factor=1, strategy_class="SimpleStrategy") 

В этом примере: «Учебное пособие» является пространство ключей мы используем, strategy_class - это стратегия репликации, используемая вашим экземпляром C *, replication_factor - количество репликаций, которое будет храниться на протяжении всего ring, 127.0.0.1 - это узел кластера Cassandra IP адрес (вы можете передать этот список или строку) и retry_connect указывает, хотите ли вы попытаться повторно подключиться, если произошел сбой соединения.

Из-за этого пользователи C * очень легко могут запутаться. Вы можете вызвать это в любое время. Перед синхронизацией таблиц C * или с помощью запроса C *.

Итак, вы хотите сделать что-то вроде:

from cqlengine.management import sync_table 
from models.connection import connect 
from models.somemodels import MyCassandraModel 

# This will fire off our previously setup 'connect' method 
connect() 
# This will setup the Model as a table in your C* DB 
sync_table(MyCassandraModel) 

Вы даже можете отказаться от этого в manage.py, только до тех пор, как установка CQLEngine() правильно выполняется.