akvo-rsr icon indicating copy to clipboard operation
akvo-rsr copied to clipboard

Bug: cache tables aren't created by default in production environments

Open MichaelAkvo opened this issue 2 years ago • 0 comments

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

MichaelAkvo avatar Mar 08 '22 15:03 MichaelAkvo