model_bakery icon indicating copy to clipboard operation
model_bakery copied to clipboard

django.db.utils.OperationalError: no such column: model_name.deleted_by_cascade

Open mateokurti opened this issue 3 years ago • 0 comments

Describe the issue I recently upgraded model-bakery from version 1.3.2 to 1.7.0. Also, I upgraded Django from 3.2.2 to 4.0 and django-safedelete from 1.0.0 to 1.3.0. After that upgrade, I get the following error everywhere that I've used baker:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 416, in execute
    return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such column: model_name.deleted_by_cascade

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/srv/odineapps/apps/core/tests/tests_setup.py", line 78, in setUp
    self.client.force_login(user=self.user)
  File "/usr/local/lib/python3.9/site-packages/django/test/client.py", line 621, in force_login
    self._login(user, backend)
  File "/usr/local/lib/python3.9/site-packages/django/test/client.py", line 633, in _login
    login(request, user, backend)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/auth/__init__.py", line 111, in login
    request.session.cycle_key()
  File "/usr/local/lib/python3.9/site-packages/django/contrib/sessions/backends/base.py", line 294, in cycle_key
    self.delete(key)
  File "/usr/local/lib/python3.9/site-packages/django/contrib/sessions/backends/db.py", line 103, in delete
    self.model.objects.get(session_key=session_key).delete()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/base.py", line 970, in delete
    collector.collect([self], keep_parents=keep_parents)
  File "/usr/local/lib/python3.9/site-packages/django/db/models/deletion.py", line 294, in collect
    if sub_objs:
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 284, in __bool__
    self._fetch_all()
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 1354, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python3.9/site-packages/django/db/models/query.py", line 51, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/usr/local/lib/python3.9/site-packages/django/db/models/sql/compiler.py", line 1202, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.9/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.9/site-packages/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 416, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such column: model_name.deleted_by_cascade

If I downgrade the version of django-safedelete back to version 1.0.0 or even 1.1.2 it seems to work. I'm not quite sure if this is a problem of model-bakery or django-safedelete, but since it was triggered by calls on baker method, I thought to report it here.

Versions

  • Python: 3.9.13 (also tried with 3.10)
  • Django 4.0
  • Model Bakery 1.7.0

mateokurti avatar Aug 24 '22 09:08 mateokurti