Closed Dean-Christian-Armada closed 8 years ago
Hi @Dean-Christian-Armada!
Could you paste your DATABASES
setting from settings.py
?
But it works well with these packages:
cassandra-driver==3.2.2 cql==1.4.0 Django==1.9 django-cassandra-engine==0.8.1 futures==3.0.5 linecache2==1.0.0 simplejson==3.8.2 six==1.10.0 thrift==0.9.3 traceback2==1.4.0 unittest2==1.1.0 wheel==0.24.0
@r4fek
All the hosts are raspvberry pi's set in my house locally
Here is my settings.py
DATABASES = {
'default': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'db',
'TEST_NAME': 'test_db',
'HOST': '192.168.1.110, 192.168.1.111, 192.168.1.112',
'OPTIONS': {
'replication': {
'strategy_class': 'SimpleStrategy',
'replication_factor': 1
}
}
}
}
Please try changing HOST
to '192.168.1.110,192.168.1.111,192.168.1.112'
(no spaces).
WOW! It worked!
Got one more question though. If I go to the admin page I get this error:
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in call
response = self.get_response(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, exc_info)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/views/debug.py", line 84, in technical_500_response
html = reporter.get_traceback_html()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/views/debug.py", line 317, in get_traceback_html
return t.render(c)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 208, in render
return self._render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
return self.nodelist.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 994, in render
bit = node.render_annotated(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
return self.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/defaulttags.py", line 323, in render
return nodelist.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 994, in render
bit = node.render_annotated(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
return self.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/defaulttags.py", line 322, in render
if match:
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/functional.py", line 234, in inner
self._setup()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/functional.py", line 380, in _setup
self._wrapped = self._setupfunc()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/middleware.py", line 24, in
Is This Normal?
Please try current master version. Bug with operators
was fixed, but not released yet.
How will I do that with using pip install? Sorry I'm new as a developer..
$ pip install git+git://github.com/r4fek/django-cassandra-engine.git@master
should do the trick.
@r4fek
This is the next error that I got
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
return self.application(environ, start_response)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 170, in __call__
response = self.get_response(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/base.py", line 124, in get_response
response = self._middleware_chain(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
response = response_for_exception(request, exc)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 86, in response_for_exception
response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/handlers/exception.py", line 128, in handle_uncaught_exception
return debug.technical_500_response(request, *exc_info)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/views/debug.py", line 84, in technical_500_response
html = reporter.get_traceback_html()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/views/debug.py", line 317, in get_traceback_html
return t.render(c)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 208, in render
return self._render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 199, in _render
return self.nodelist.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 994, in render
bit = node.render_annotated(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
return self.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/defaulttags.py", line 323, in render
return nodelist.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 994, in render
bit = node.render_annotated(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/base.py", line 961, in render_annotated
return self.render(context)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/template/defaulttags.py", line 322, in render
if match:
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/functional.py", line 234, in inner
self._setup()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/functional.py", line 380, in _setup
self._wrapped = self._setupfunc()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/middleware.py", line 24, in <lambda>
request.user = SimpleLazyObject(lambda: get_user(request))
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/middleware.py", line 12, in get_user
request._cached_user = auth.get_user(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 180, in get_user
user_id = _get_user_session_key(request)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 59, in _get_user_session_key
return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 57, in __getitem__
return self._session[key]
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 207, in _get_session
self._session_cache = self.load()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 35, in load
expire_date__gt=timezone.now()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 379, in get
num = len(clone)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 238, in __len__
self._fetch_all()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 1085, in _fetch_all
self._result_cache = list(self.iterator())
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 54, in __iter__
results = compiler.execute_sql()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/utils.py", line 47, in execute
return self.cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 13, in execute
return self.connection.execute(*args, **kwargs)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 85, in execute
return self.session.execute(qs, *args, **kwargs)
File "cassandra/cluster.py", line 1961, in cassandra.cluster.Session.execute (cassandra/cluster.c:34076)
return self.execute_async(query, parameters, trace, custom_payload, timeout, execution_profile).result()
File "cassandra/cluster.py", line 3649, in cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:69755)
raise self._final_exception
SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 1:132 no viable alternative at input '.' (...django_session.expire_date FROM django_session WHERE [(]django_session....)">
OK looks like you have django.contrib.auth
in your INSTALLED_APPS
, but django_cassandra_engine
is your default database backend. Unfortunately you have to use relational database for such purposes. Please read http://r4fek.github.io/django-cassandra-engine/guide/advanced_usage/
@r4fek
To be honest I'm a little embarassed, having a one-on-one assitance with you but I very much appreciate it..
So I did what you said and when I run
python manage.py sync_cassandra
I got this error:
Creating keyspace db..
/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/cassandra/cqlengine/management.py:492: UserWarning: CQLENG_ALLOW_SCHEMA_MANAGEMENT environment variable is not set. Future versions of this package will require this variable to enable management functions.
warnings.warn(msg)
Syncing example.models.ExampleModel
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/management/base.py", line 305, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/management/base.py", line 356, in execute
output = self.handle(*args, **options)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/management/commands/sync_cassandra.py", line 126, in handle
emit_post_migrate_signal(1, False, cassandra_alias)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/management/commands/sync_cassandra.py", line 36, in emit_post_migrate_signal
using=db)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 191, in send
response = receiver(signal=self, sender=sender, **named)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 63, in create_permissions
ctype = ContentType.objects.db_manager(using).get_for_model(klass)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/contrib/contenttypes/models.py", line 52, in get_for_model
ct = self.get(app_label=opts.app_label, model=opts.model_name)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 379, in get
num = len(clone)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 238, in __len__
self._fetch_all()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 1085, in _fetch_all
self._result_cache = list(self.iterator())
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/query.py", line 54, in __iter__
results = compiler.execute_sql()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 835, in execute_sql
cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/utils.py", line 47, in execute
return self.cursor.execute(sql, params)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 13, in execute
return self.connection.execute(*args, **kwargs)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 85, in execute
return self.session.execute(qs, *args, **kwargs)
File "cassandra/cluster.py", line 1961, in cassandra.cluster.Session.execute (cassandra/cluster.c:34076)
File "cassandra/cluster.py", line 3649, in cassandra.cluster.ResponseFuture.result (cassandra/cluster.c:69755)
cassandra.protocol.SyntaxException: <Error from server: code=2000 [Syntax error in CQL query] message="line 1:139 no viable alternative at input '.' (...django_content_type.model FROM django_content_type WHERE [(]django_content_type....)">
Then when I ran migrate it worked on my sqlite3
Returning these:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying sessions.0001_initial... OK
Here is my DATABASE Settings by the way:
from cassandra import ConsistencyLevel
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'cassandra': {
'ENGINE': 'django_cassandra_engine',
'NAME': 'db',
'TEST_NAME': 'test_db',
'HOST': '192.168.1.110,192.168.1.111,192.168.1.112',
'OPTIONS': {
'replication': {
'strategy_class': 'SimpleStrategy',
'replication_factor': 1
},
'connection': {
'consistency': ConsistencyLevel.LOCAL_ONE,
'retry_connect': True
# + All connection options for cassandra.cluster.Cluster()
},
'session': {
'default_timeout': 10,
'default_fetch_size': 10000
# + All options for cassandra.cluster.Session()
}
}
}
}
So what is actually happening? What would be my next steps? I became confuse on what to follow since I have mixed cassandra with a relational database.. Should I follow the usual or normal RDBMS model development or the Cassandra Standard?
Here is my models.py by the way:
from __future__ import unicode_literals
from django.db import models
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
import uuid
# Create your models here.
class ExampleModel(Model):
read_repair_chance = 0.05
example_id = columns.UUID(primary_key=True, default=uuid.uuid4)
description = columns.Text(required=False)
Please reinstall and try sync_cassandra
once again.
You should definitely read some modeling guides since this is nothing like RDBMS.
http://www.datastax.com/dev/blog/basic-rules-of-cassandra-data-modeling
@r4fek
Is it impossible to use ORM on models made for Cassandra?
It's possible, but it's not Django ORM. It's ORM from cassandra-driver
: https://datastax.github.io/python-driver/object_mapper.html
THANKS FOR EVERYTHING!
You're welcome!
Here are my packages: cassandra-driver==3.6.0 cql==1.4.0 Django==1.10 django-cassandra-engine==0.11.0 futures==3.0.5 linecache2==1.0.0 simplejson==3.8.2 six==1.10.0 thrift==0.9.3 traceback2==1.4.0 unittest2==1.1.0 wheel==0.24.0
I received this error when I tried to run the server:
(django-cassandra)Deans-MacBook:tutorial deanarmada$ python manage.py runserver Unhandled exception in thread started by <function wrapper at 0x109c95de8> Traceback (most recent call last): File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper fn(_args, _kwargs) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run autoreload.raise_last_exception() File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception six.reraise(__exception) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper fn(_args, kwargs) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/init.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate app_config.import_models(all_models) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django/apps/config.py", line 199, in import_models self.models_module = import_module(models_module_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/init.py", line 37, in import_module import(name) File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/models/init.py", line 5, in
conn.connect()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/base/ init.py", line 94, in connect
self.connection = CassandraConnection(settings)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 58, in init
self.setup()
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/django_cassandra_engine/connection.py", line 70, in setup
_self.connection_options)
File "/Users/deanarmada/.virtualenvs/django-cassandra/lib/python2.7/site-packages/cassandra/cqlengine/connection.py", line 127, in setup
cluster = Cluster(hosts, *_kwargs)
File "cassandra/cluster.py", line 781, in cassandra.cluster.Cluster.init (cassandra/cluster.c:10555)
socket.gaierror: [Errno 8] nodename nor servname provided, or not known