zappa-django-utils: s3sqlite OperationalError

I have set up a simple Django REST API which I deployed using Zappa. I also want to use the s3sqlite database as described in your blog. The default django url works just fine, but when I go to https://****.execute-api.eu-central-1.amazonaws.com/dev/users/ or try to login as admin I get:


Environment:


Request Method: POST
Request URL: https://****.execute-api.eu-central-1.amazonaws.com/dev/api-auth/login/

Django Version: 2.0.6
Python Version: 3.6.1
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'storages',
 'zappa_django_utils']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/var/task/django/db/backends/utils.py" in _execute
  85.                 return self.cursor.execute(sql, params)

File "/var/task/django/db/backends/sqlite3/base.py" in execute
  303.         return Database.Cursor.execute(self, query, params)

The above exception (no such table: auth_user) was the direct cause of the following exception:

File "/var/task/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/var/task/django/core/handlers/base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "/var/task/django/core/handlers/base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/var/task/django/views/generic/base.py" in view
  69.             return self.dispatch(request, *args, **kwargs)

File "/var/task/django/utils/decorators.py" in _wrapper
  62.             return bound_func(*args, **kwargs)

File "/var/task/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper
  76.             return view(request, *args, **kwargs)

File "/var/task/django/utils/decorators.py" in bound_func
  58.                 return func.__get__(self, type(self))(*args2, **kwargs2)

File "/var/task/django/utils/decorators.py" in _wrapper
  62.             return bound_func(*args, **kwargs)

File "/var/task/django/utils/decorators.py" in _wrapped_view
  142.                     response = view_func(request, *args, **kwargs)

File "/var/task/django/utils/decorators.py" in bound_func
  58.                 return func.__get__(self, type(self))(*args2, **kwargs2)

File "/var/task/django/utils/decorators.py" in _wrapper
  62.             return bound_func(*args, **kwargs)

File "/var/task/django/views/decorators/cache.py" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)

File "/var/task/django/utils/decorators.py" in bound_func
  58.                 return func.__get__(self, type(self))(*args2, **kwargs2)

File "/var/task/django/contrib/auth/views.py" in dispatch
  66.         return super().dispatch(request, *args, **kwargs)

File "/var/task/django/views/generic/base.py" in dispatch
  89.         return handler(request, *args, **kwargs)

File "/var/task/django/views/generic/edit.py" in post
  141.         if form.is_valid():

File "/var/task/django/forms/forms.py" in is_valid
  179.         return self.is_bound and not self.errors

File "/var/task/django/forms/forms.py" in errors
  174.             self.full_clean()

File "/var/task/django/forms/forms.py" in full_clean
  377.         self._clean_form()

File "/var/task/django/forms/forms.py" in _clean_form
  404.             cleaned_data = self.clean()

File "/var/task/django/contrib/auth/forms.py" in clean
  195.             self.user_cache = authenticate(self.request, username=username, password=password)

File "/var/task/django/contrib/auth/__init__.py" in authenticate
  70.             user = _authenticate_with_backend(backend, backend_path, request, credentials)

File "/var/task/django/contrib/auth/__init__.py" in _authenticate_with_backend
  116.     return backend.authenticate(*args, **credentials)

File "/var/task/django/contrib/auth/backends.py" in authenticate
  16.             user = UserModel._default_manager.get_by_natural_key(username)

File "/var/task/django/contrib/auth/base_user.py" in get_by_natural_key
  44.         return self.get(**{self.model.USERNAME_FIELD: username})

File "/var/task/django/db/models/manager.py" in manager_method
  82.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/var/task/django/db/models/query.py" in get
  397.         num = len(clone)

File "/var/task/django/db/models/query.py" in __len__
  254.         self._fetch_all()

File "/var/task/django/db/models/query.py" in _fetch_all
  1179.             self._result_cache = list(self._iterable_class(self))

File "/var/task/django/db/models/query.py" in __iter__
  53.         results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)

File "/var/task/django/db/models/sql/compiler.py" in execute_sql
  1068.             cursor.execute(sql, params)

File "/var/task/django/db/backends/utils.py" in execute
  100.             return super().execute(sql, params)

File "/var/task/django/db/backends/utils.py" in execute
  68.         return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)

File "/var/task/django/db/backends/utils.py" in _execute_with_wrappers
  77.         return executor(sql, params, many, context)

File "/var/task/django/db/backends/utils.py" in _execute
  85.                 return self.cursor.execute(sql, params)

File "/var/task/django/db/utils.py" in __exit__
  89.                 raise dj_exc_value.with_traceback(traceback) from exc_value

File "/var/task/django/db/backends/utils.py" in _execute
  85.                 return self.cursor.execute(sql, params)

File "/var/task/django/db/backends/sqlite3/base.py" in execute
  303.         return Database.Cursor.execute(self, query, params)

Exception Type: OperationalError at /api-auth/login/
Exception Value: no such table: auth_user

Am I missing something?

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 28 (4 by maintainers)

Most upvoted comments

For me the error was permissions, the moment I gave

  • s3:GetObject
  • s3:PutObject on all S3 resources the problem got solved. BTW pay attention the lower the log level to debug, otherwise you won’t see the error. @Miserlou since when error are put in debug 😃