Установку будем призводить глобально, это позволит использовать PostgreSQL в нескольких проектах.
Для начала обновим систему
sudo apt-get update
sudo apt-get upgrade
Установка допонительных библиотек для взаимодействия PostgreSQL с Python/Django
sudo apt-get install python3-dev libpq-dev
Переходим к установке PostgreSQL
sudo apt-get install postgresql postgresql-contrib
По умолчанию PostgreSQL создает БД и пользователя под именем postgres, все установки и изменения возможны если войти в сервис под этим именем
sudo -u postgres psql
Приглашение командной строки примет вид postgres=#
Создадим базу данных для нашего проекта и нового пользователя (использование точки с запятой в конце команды обязательно при работе в БД )
CREATE DATABASE myprojectbd;
CREATE USER myprojectuser WITH PASSWORD 'password';
Выполним минимальную настройку новой базы
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE myprojectbd TO myprojectuser;
Для выхода введите
\q
Теперь надо сделать настройки для конкретного проекта. Установим внутри нашего виртуального окружения пакет для взаимодействия с PostgreSQL
(mysite)$ pip install psycopg2
Сразу после установки, наш проект настроен на работу с простой БД SQLite. Для переключения на взаимодействие с PostgreSQL надо изменить содержимое DATABASES в settings.py, использовав название созданной выше БД, имя пользователя и пароль.:
settings.py
.....
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myprojectbd',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
.....
На этом первоначальная настройка PostgeSQL для Django закончена.