I am trying to connect my Django application to PostgreSQL running in a Docker container, but when I execute python manage.py runserver or python manage.py makemigrations, I get the following error:
System check identified 3 issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1073, in _bootstrap_inner
self.run()
File "C:\Users\Usuario\AppData\Local\Programs\Python\Python312\Lib\threading.py", line 1010, in run
self._target(*self._args, **self._kwargs)
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\core\management\commands\runserver.py", line 137, in inner_run
self.check_migrations()
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\core\management\base.py", line 581, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\migrations\loader.py", line 58, in __init__
self.build_graph()
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\migrations\loader.py", line 235, in build_graph
self.applied_migrations = recorder.applied_migrations()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\migrations\recorder.py", line 89, in applied_migrations
if self.has_table():
^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\migrations\recorder.py", line 63, in has_table
with self.connection.cursor() as cursor:
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\backends\base\base.py", line 320, in cursor
return self._cursor()
^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\backends\base\base.py", line 296, in _cursor
self.ensure_connection()
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\backends\base\base.py", line 279, in ensure_connection
self.connect()
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\backends\base\base.py", line 256, in connect
self.connection = self.get_new_connection(conn_params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\django\db\backends\postgresql\base.py", line 332, in get_new_connection
connection = self.Database.connect(**conn_params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Cositas\Python\Emergentes\env\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf3 in position 85: invalid continuation byte
What I've tried:
- Verified that the database uses UTF-8.
- Deleted and recreated the database in Docker with UTF-8.
- Tested with both psycopg2 and psycopg2-binary.
- Checked for special characters in my configuration.
- Deleted and reinstalled my virtual environment.
What else can I check to resolve this error? Could there be some data in the database causing this issue? How can I debug which exact byte is triggering this error in PostgreSQL?