Hi,
I've got an error with starting TG Bot: FOREIGN KEY constraint failed. Tried on local env with SQLite and docker-compose file. Both ways have the same result.
Steps to reproduce:
clone repo
create new TG Bot
create .env file as described at wiki
start docker-compose
open TG and /start with my bot
-> nothing happen in TG, but there is described error at logs
Possible root cause:
Looks like handler_logging decorator is executed ahead creating user at command_start
@handler_logging()
def command_start(update, context):
u, created = User.get_user_and_created(update, context)
Here is an error trace:
Traceback (most recent call last):
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/telegram/ext/dispatcher.py", line 442, in process_update
handler.handle_update(update, self, check, context)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/telegram/ext/handler.py", line 160, in handle_update
return self.callback(update, context)
File "/home/dmitrii/storage/documents/devel/external/django-telegram-bot/tgbot/handlers/utils.py", line 26, in handler
UserActionLog.objects.create(user_id=user_id, action=action, created_at=timezone.now())
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/query.py", line 447, in create
obj.save(force_insert=True, using=self.db)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/base.py", line 753, in save
self.save_base(using=using, force_insert=force_insert,
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/base.py", line 790, in save_base
updated = self._save_table(
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/base.py", line 895, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/base.py", line 933, in _do_insert
return manager._insert(
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/query.py", line 1254, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1397, in execute_sql
cursor.execute(sql, params)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File ".../django-telegram-bot/venv/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 ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File ".../django-telegram-bot/venv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 413, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: FOREIGN KEY constraint failed
Hi, I've got an error with starting TG Bot: FOREIGN KEY constraint failed. Tried on local env with SQLite and docker-compose file. Both ways have the same result.
Steps to reproduce:
Possible root cause: Looks like
handler_logging
decorator is executed ahead creating user atcommand_start
Here is an error trace: