akvo-rsr
akvo-rsr copied to clipboard
Bug: cache tables aren't created by default in production environments
What were you doing?
- create a training environment
- open the landing page
- wait until it crashes / turns white
After looking on the server, one sees
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/var/akvo/rsr/code/akvo/rest/viewsets.py", line 205, in create
delete_project_from_project_directory_cache(project.pk)
File "/var/akvo/rsr/code/akvo/rest/cache.py", line 38, in delete_project_from_project_directory_cache
delete_cache_data(project_directory_cache_key(project_id), PROJECT_DIRECTORY_CACHE)
File "/var/akvo/rsr/code/akvo/cache/__init__.py", line 73, in delete_cache_data
cache.delete(key)
File "/usr/local/lib/python3.8/site-packages/django/core/cache/backends/db.py", line 201, in delete
return self._base_delete_many([self.make_key(key, version)])
File "/usr/local/lib/python3.8/site-packages/django/core/cache/backends/db.py", line 220, in _base_delete_many
cursor.execute(
File "/usr/local/lib/python3.8/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "slow_queries" does not exist
What should've happened?
The landing page should have loaded with an empty map.
My environment
No response
Additional context
Cache tables have to be created in order for django to use them.
The command is ./manage.py createcachetables
(take from the doc).
It should be added to start script in production (start-django.sh
?)