Что такое PostgreSQL и как ее установить
- Как установить и настроить PostgreSQL на Ubuntu
- Как подключить PostgreSQL к Django
- Как настроить PostgreSQL на Docker
В статье мы расскажем, что такое PostgreSQL и как происходит его установка и настройка на сервере.
PostgreSQL — это реляционная СУБД. Она имеет открытый код и распространяется свободно. Postgre создана на основе процедурного языка PL/pgSQL. Система управления базами данных поддерживается в системах Unix. Postgre можно установить в ОС семейства Linux: например, на Ubuntu, Debian и CentOS.
Как установить и настроить PostgreSQL на Ubuntu
1. Обновите дистрибутивы:
sudo apt update
2. Установите Postgre и contrib:
sudo apt install postgresql postgresql-contrib
3. Чтобы узнать версию PostgreSQL, введите команду:
postgres -V
PostgreSQL install Ubuntu
Готово.
PostgreSQL на Linux: основные команды
Как работать в консоли PostgreSQL:
- Как запустить сервер:
sudo -u postgres psql
- Как создать базу данных:
CREATE DATABASE dbname;
- Как создать пользователя:
CREATE USER username WITH LOGIN PASSWORD 'password';
Где:
- username — имя пользователя БД,
- password — пароль.
- Как создать таблицу:
CREATE TABLE table_name (
address varchar(80),
user_id int,
order real,
date date
);
Где:
- table_name — название таблицы,
- address, user_id, order, date — имена столбцов,
- varchar, int, real, date — типы данных, хранящихся в этих столбцах.
Как подключить PostgreSQL к Django
Django — это фреймворк для создания приложений на Python. По умолчанию в нём используется SQLite, однако Django позволяет установить PostgreSQL.
1. Подключитесь к серверу по SSH.
2. Обновите дистрибутивы. Для этого поочерёдно выполните команды:
sudo apt update
sudo apt upgrade
3. Установите PostgreSQL и модули, необходимые для работы:
sudo apt install postgresql postgresql-contrib python3-pip python3-dev libpq-dev nginx
4. Запустите консоль Postgre:
sudo -u postgres psql
5. Создайте базу данных для проекта:
CREATE DATABASE projectname;
Вместо projectname укажите название проекта.
6. Создайте пользователя базы данных и присвойте ему пароль:
CREATE USER username WITH PASSWORD 'password';
Где:
- username — имя пользователя БД,
- password — пароль пользователя.
7. Назначьте кодировку UTF-8:
ALTER ROLE username SET client_encoding TO 'utf8';
Вместо username укажите имя пользователя базы данных.
8. Задайте схему изоляцию транзакции:
ALTER ROLE username SET default_transaction_isolation TO 'read committed';
Вместо username укажите имя пользователя базы данных.
9. Укажите стандарт времени:
ALTER ROLE username SET timezone TO 'UTC';
Вместо username укажите имя пользователя базы данных.
10. Выдайте пользователю права на управление БД:
GRANT ALL PRIVILEGES ON DATABASE projectname TO username;
Где:
- projectname — название проекта,
- username — имя пользователя БД.
11. Закройте консоль Postgre:
\q
12. Обновите pip:
sudo -H pip install --upgrade pip
13. Установите virtualenv:
sudo -H pip install virtualenv
14. Создайте папку для хранения файлов проекта:
mkdir ~/projectnamedirectory
Вместо projectnamedirectory укажите название папки.
15. Перейдите в новую директорию:
cd ~/projectnamedirectory
Вместо projectnamedirectory укажите название папки.
16. Внутри директории создайте виртуальное окружение:
virtualenv projectnameenv
Вместо projectnameenv укажите название виртуального окружения.
17. Активируйте виртуальное окружение с помощью команды:
source projectnameenv/bin/activate
Вместо projectnameenv укажите название виртуального окружения.
18. Установите Django, gunicorn и psycopg:
pip install django gunicorn psycopg2-binary
19. Создайте проект:
django-admin startproject projectname ~/projectnamedirectory
Где:
- projectname — название проекта,
- projectnamedirectory — название папки, в которой хранятся файлы проекта.
20. Откройте файл настроек:
sudo nano ~/projectnamedirectory/projectname/settings.py
Где:
- projectname — название проекта,
- projectnamedirectory — название папки, в которой хранятся файлы проекта.
21. В начале файла добавьте строки:
from pathlib import Path
import os
Найдите строку ALLOWED_HOSTS и добавьте в ней параметры:
ALLOWED_HOSTS = ['123.123.123.123', 'localhost']
Вместо 123.123.123.123 укажите IP-адрес вашего сервера.
В этом же файле в блоке DATABASES добавьте данные для подключения к БД:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'projectname',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
Где:
- projectname — имя базы данных,
- username — имя пользователя БД,
- password — пароль пользователя БД.
В строках STATIC_URL и STATIC_ROOT укажите параметры:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
Затем сохраните изменения и закройте файл.
22. Перейдите в директорию проекта:
cd ~/projectnamedirectory
Вместо projectnamedirectory укажите имя директории проекта.
23. Перенесите исходную схему БД в PostgreSQL. Для этого поочерёдно выполните команды:
python manage.py makemigrations
python manage.py migrate
24. Создайте суперпользователя проекта:
python manage.py createsuperuser
Заполните поля:
- Username — укажите имя пользователя,
- Email address — введите адрес электронной почты,
- Password — укажите пароль,
- Password (again) — повторите пароль.
Затем нажмите Enter:
Запуск PostgreSQL из командной строки Linux
25. Разблокируйте порт 8000:
sudo ufw allow 8000
26. Протестируйте проект. Для этого запустите сервер Django:
python manage.py runserver 0.0.0.0:8000
27. Откройте браузер и введите в адресной строке 123.123.123.123:8000. Вместо 123.123.123.123 укажите IP-адрес сервера. Если настройка сервера прошла корректно, на экране отобразится стартовая страница Django:
PostgreSQL Python установка
Готово. Теперь вы знаете, как запустить PostgreSQL на Django.
Как настроить PostgreSQL на Docker
Чтобы настроить Postgre:
1. Установите Docker с помощью официального руководства.
3. Создайте базу данных проекта.
4. Создайте директорию проекта:
mkdir ~/projectname
Вместо projectname укажите название проекта.
5. Перейдите в директорию проекта:
cd ~/projectname
Вместо projectname укажите название проекта.
6. Откройте настройки проекта с помощью команды:
nano ~/projectname/docker-compose.yaml
Вместо projectname укажите название проекта.
7. В файл docker-compose.yaml добавьте следующие параметры:
version: '3.1'
volumes:
pg_project: 'projectname'
services:
pg_db:
image: postgres
restart: always
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=username
- POSTGRES_DB=dbname
volumes:
- pg_project:/var/lib/postgresql/data
ports:
- ${POSTGRES_PORT:-5432}:5432
Где:
- version: '3.1' — версия Docker,
- pg_project: 'projectname' — название проекта,
- POSTGRES_PASSWORD=password — пароль БД,
- POSTGRES_USER=username — логин пользователя БД,
- POSTGRES_DB=dbname — имя базы данных.
Затем сохраните изменения и закройте файл.