Connection to Postgresql server on socket "/var/run/postgresql/.s.PGSQL.5432" failed. OperationalError on railway.app
I deployed my Django app on railway.app recently. After deployment, I tried to login into my app when I was confronted by this OperationalError. The Traceback looks something like this:
Environment:
Request Method: POST
Request URL: http://optimuscore.up.railway.app/
Django Version: 4.0
Python Version: 3.10.9
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'account',
'dhule',
'solapur',
'mathfilters',
'django_filters']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 230, in ensure_connection
self.connect()
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 211, in connect
self.connection = self.get_new_connection(conn_params)
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 199, in get_new_connection
connection = Database.connect(**conn_params)
File "/opt/venv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
The above exception (connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
) was the direct cause of the following exception:
File "/opt/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/opt/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/accounting/account/views.py", line 72, in login
print('fm: ', fm)
File "/opt/venv/lib/python3.10/site-packages/django/forms/utils.py", line 55, in render
context or self.get_context(),
File "/opt/venv/lib/python3.10/site-packages/django/forms/forms.py", line 298, in get_context
top_errors = self.non_field_errors().copy()
File "/opt/venv/lib/python3.10/site-packages/django/forms/forms.py", line 333, in non_field_errors
return self.errors.get(
File "/opt/venv/lib/python3.10/site-packages/django/forms/forms.py", line 185, in errors
self.full_clean()
File "/opt/venv/lib/python3.10/site-packages/django/forms/forms.py", line 405, in full_clean
self._clean_form()
File "/opt/venv/lib/python3.10/site-packages/django/forms/forms.py", line 426, in _clean_form
cleaned_data = self.clean()
File "/opt/venv/lib/python3.10/site-packages/django/contrib/auth/forms.py", line 205, in clean
self.user_cache = authenticate(self.request, username=username, password=password)
File "/opt/venv/lib/python3.10/site-packages/django/views/decorators/debug.py", line 42, in sensitive_variables_wrapper
return func(*func_args, **func_kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/contrib/auth/__init__.py", line 76, in authenticate
user = backend.authenticate(request, **credentials)
File "/opt/venv/lib/python3.10/site-packages/django/contrib/auth/backends.py", line 42, in authenticate
user = UserModel._default_manager.get_by_natural_key(username)
File "/opt/venv/lib/python3.10/site-packages/django/contrib/auth/base_user.py", line 44, in get_by_natural_key
return self.get(**{self.model.USERNAME_FIELD: username})
File "/opt/venv/lib/python3.10/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/models/query.py", line 435, in get
num = len(clone)
File "/opt/venv/lib/python3.10/site-packages/django/db/models/query.py", line 262, in __len__
self._fetch_all()
File "/opt/venv/lib/python3.10/site-packages/django/db/models/query.py", line 1354, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/opt/venv/lib/python3.10/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 "/opt/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", line 1200, in execute_sql
cursor = self.connection.cursor()
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 270, in cursor
return self._cursor()
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 246, in _cursor
self.ensure_connection()
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 229, in ensure_connection
with self.wrap_database_errors:
File "/opt/venv/lib/python3.10/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 230, in ensure_connection
self.connect()
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 211, in connect
self.connection = self.get_new_connection(conn_params)
File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 25, in inner
return func(*args, **kwargs)
File "/opt/venv/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 199, in get_new_connection
connection = Database.connect(**conn_params)
File "/opt/venv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
Exception Type: OperationalError at /
Exception Value: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
The link to my GitHub repository is https://github.com/vimpa5/OptimuScore
Can someone please help me find where the issue lies and suggest how I can overcome this problem?
EDIT #1:
While deploying the app I had psycopg2 package installed on my project but once this error occurred, I went through a YouTube tutorial about deployment of Django app on railway.app and there, the guy had psycopg2-binary in his requirements.txt, I panicked and uninstalled my psycopg2 package and installed psycopg2-binary, updated my requirements.txt and pushed it to my GitHub repo. But I'm still facing the same error, which probably proves that the package was not the problem. Meanwhile, when I was going through the Traceback, I noticed a line;
File "/opt/venv/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
which somehow shows that my deployed project wasn't totally updated as per the pushed updates. I literally can't figure out where all this is going, how I can tackle this issue!