model_bakery
model_bakery copied to clipboard
django.db.utils.OperationalError: no such column: model_name.deleted_by_cascade
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