Блог Синявского
  • Разделы
  • Метки
  • Все статьи

Использование PostgreSQL в Django приложении

1

Использование PostgreSQL в Django приложении

Заметка по настройке PostgreSQL для работы в Django приложении

Устанавливаем необходимые пакеты

sudo apt-get install postgresql

Повышаем права sudo su

Далее заходим под пользователем postgres

su postgres

Подключаемся к базе

psql

psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# 

Создаем пользователя username с паролем password

CREATE ROLE username LOGIN PASSWORD 'password';

И базу данных для приложения с названием database_name с владельцем пользователь username

CREATE DATABASE database_name WITH OWNER=username ENCODING='UTF8';

Выходим из PostgreSQL:

\q

Для моего случая:

CREATE ROLE superapp LOGIN PASSWORD 'superapp';
CREATE DATABASE superapp WITH OWNER=superapp ENCODING='UTF8';

Добавляем в проект модуль для работы с PostgreSQL:

pip install django psycopg2-binary

Прописываем в приложении Django аттрибуты подключения к базе данных:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'superapp',
        'USER': 'superapp',
        'PASSWORD': 'superapp',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

Порт может отличаться от 5432, если в системе установлено несколько кластеров PostgreSQL или несколько версий PostgreSQL.

Необходимо выдать разрашение для пользователя подключаться к PostgreSQL. Это так же поможет для решения проблемы password authentication failed for user "superapp"

$ nano /etc/postgresql/12/main/pg_hba.conf
...
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   superapp        superapp                                md5
...

Перезагружаем сервис:

service postgresql restart


  • ← сюда
  • туда →

comments powered by Disqus

Опубликовано

02.05.2022

Обновление

05.05.2022

Категории

postgresql

Тэги

  • django 12
  • postgresql 5

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor