Что такое PostgreSQL и как ее установить

В статье мы расскажем, что такое 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 с помощью официального руководства.

2. Установите PostgreSQL.

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 — имя базы данных.

Затем сохраните изменения и закройте файл.

Если вы не нашли ответ, спросите у нас!
Написать в поддержку