Проблема с подключением postgres к django
Следуя документации из Django Postgres Documentation я добавил в свой settings.py
в настройках я установил
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'OPTIONS': {
'service': 'my_service',
'passfile': '.my_pgpass',
},
}
}
Вместе с settings.py я создал pg_service.conf с
[my_service]
host=localhost
user=USER
dbname=NAME
port=5432
и рядом с ним я создал mypg_pass
localhost:5432:PostgreSQL 14:postgres:LetMeIn
Я почти уверен, что следовал документации, но на python manage.py check я получил следующую ошибку.
connection = Database.connect(**conn_params)
File "C:\Users\oliver\base\correlator2v2\correlator2home\venv\lib\site-packages\psycopg2\__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)django.db.utils.OperationalError: definition of service "my_service" not found
Не удается найти сервис, но на самом деле от человека вообще не требуется пользоваться сервисом...
OP может просто
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'NAME', # database name
'USER': 'USER',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '5432',
}
}
Рядом с settings.py я создал pg_service.conf
.
Система ищет его не там, где нужно, см. документацию
"По умолчанию служебный файл для каждого пользователя называется ~/.pg_service.conf." Где ~ означает ваш домашний каталог, а не текущий (и, конечно, не означает "тот же каталог, где находится settings.py", поскольку PostgreSQL даже не знает, что это за файл)
Решено, не следуя документации Django, но вместо этого нашел этот пример, который помог.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'LetMeIn123',
'HOST': 'localhost',
'PORT': '5432',
}
}