- Установка и настройка PostgreSQL в проекте на Django
- Установка и подключение PostgreSQL к Django
- 1. Добавление PPA
- 2. Обновляем пакеты
- 3. Устанавливаем PostgreSQL
- 4. Открываем консоль PostgreSQL
- 5. Задаем пароль для администратора БД
- 6. Создадим суперпользователя
- 7. Создаем базу данных для нашего проекта
- 8. Выходим из консоли PostgreSQL команой:
- 9. Активируем виртуальное окружение (если оно не активировано)
- 10. В виртуальное окружение проекта устанавливаем бэкэнд для PostgreSQL
- 11. Отредактируем файл настроек Django
- 12. Перезапускаем Gunicorn
- 13. Выполним миграцию базы данных
- 14. Создадим суперпользователя Django
- 15. Перезапускаем Gunicorn (повторяем пункт 12 этой статьи)
- 16. Авторизуемся в админке
- Django+PostgreSQL за 8 шагов
- Настройка PostgreSQL
- Кто такой superuser?
- Проверка
- Изменение пароля для суперюзера
- Создание пользователя и базы
- Настройка конфигурации Django
- Блог на Django #32: Установка PostgreSQL
- Подписывайтесь на канал в Дзене
Установка и настройка PostgreSQL в проекте на Django
Oct. 24, 2017, 4:07 p.m.
Установку будем призводить глобально, это позволит использовать 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;
Для выхода введите
Теперь надо сделать настройки для конкретного проекта. Установим внутри нашего виртуального окружения пакет для взаимодействия с 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 закончена.
Установка и подключение PostgreSQL к Django
Приветствую! В прошлой статье мы выполнили деплой приложения Django на сервере с операционной системой Ubuntu 20.04. В этой статье мы продолжим эту инструкцию, а именно установим и подключим мощную и функциональную базу данных PostgreSQL к нашему Django приложению.
По-умолчанию Django использует базу данных SQLite, но это не самый лучший вариант для хранения информации. Поэтому работать мы будем именно с PostgreSQL.
1. Добавление PPA
PostgreSQL — популярный сервер баз данных и он имеется в официальных репозиториях. Но мы хотим использовать самую последнюю версию программы. Для этого нужно добавить в систему PPA (Personal Package Archive) с помощью команд:
2. Обновляем пакеты
3. Устанавливаем PostgreSQL
На момент написания статьи последней актуальной версий являлась PostgreSQL-12. Проверить последнюю версию можно на официальном сайте БД. В случае обновления можно просто заменить версию в команде, например, sudo apt install postgresql-13.
4. Открываем консоль PostgreSQL
5. Задаем пароль для администратора БД
6. Создадим суперпользователя
Создадим и настроим пользователя, при помощи которого будем соединяться с базой данных из Django (делать все через суперпользователя — не самая хорошая идея). Также укажем значения по умолчанию для кодировки, уровня изоляции транзакций и временного пояса. Вводим поочередно следующие команды:
Здесь hostgeek_db — это имя пользователя, а testpassword18 — пароль. Указывайте свои индивидуальные значения.
7. Создаем базу данных для нашего проекта
Здесь first_db — это название базы данных, а hostgeek_db — имя пользователя, который был создан в предыдущем пункте.
8. Выходим из консоли PostgreSQL команой:
9. Активируем виртуальное окружение (если оно не активировано)
Подробно об этом было расписано в прошлой статье по деплою Django. Активируется виртуальное окружение командой:
Конечно, эта команда зависит от пути, в который вы установили виртуальное окружение. Но у меня оно активируется таким образом.
10. В виртуальное окружение проекта устанавливаем бэкэнд для PostgreSQL
11. Отредактируем файл настроек Django
Полностью удаляем раздел DATABASES = <. >и заменяем на следующий код:
12. Перезапускаем Gunicorn
Для активизации этих изменений нужно перезапустить Gunicorn. Для этого вводим команду:
Жмем F4 (Filter) и вводим слово gunicorn. Так мы из общей массы отсортируем только процессы Gunicorn. Жмем на клавиатуре стрелку вниз и «киляем» все процессы поочередным нажатием клавиш F9 — 1 (SIGHUP) — Enter. Как видно, после «убийства» процессов они тут же запускаются автоматически, значит все работает правильно
Выходим из htop нажатием клавиши F10.
13. Выполним миграцию базы данных
Перейдем в папку
/myapps/parser/siteparser (папка, в которой лежит файл manage.py):
Выполним команду миграции БД:
14. Создадим суперпользователя Django
Под этим пользователем мы будем авторизовываться в админ-панели Django.
15. Перезапускаем Gunicorn (повторяем пункт 12 этой статьи)
16. Авторизуемся в админке
Теперь можем зайти в админку сайта по адресу: http://45.82.178.214/admin/ и авторизоваться в ней под данными созданного суперпользователя. Но можно заметить, что админка не имеет подключенных стилей:
Для подключения стилей откроем конфигурационный файл Nginx:
Добавим в него следующий код и сохраним файл:
После этого админка будет отображаться корректно:
На этом подключение базы данных PostgreSQL к фреймворку Django завершено. В следующей статье разберем настройку Memcached.
Если у вас возникли какие-либо вопросы по этой статье, то задавайте их в комментариях, мы обязательно ответим. Спасибо за внимание!
Django+PostgreSQL за 8 шагов
На ночь глядя решился написать гайд по установке СУБД PostgreSQL для использования вместе с Django.
Хотя в мануалах Django и рекомендуется использовать PostgreSQL, но среди разработчиков бытует мнение, что MySQL гораздо проще для начинающего разработчика.
Я с этим мнением не согласен. И попытаюсь Вам это доказать.
За 8 простых шагов я покажу как установить PostgreSQL в Ubuntu 14.04 LTS и настроить Django для работы с ним.
- Ставим сам сервер PostgreSQL и библиотеку разработчика (она пригодится нам при установке бэкэнда)
Если вы решите использовать более свежую Ubuntu 16.04 LTS, то PostgreSQL там будет уже версии 9.5.
Открываем консоль PostgreSQL
Задаем пароль администратора БД
Создаем и настраиваем пользователя при помощи которого будем соединяться с базой данных из Django (ну очень плохая практика все делать через . суперпользователя). Заодно указываем значения по умолчанию для кодировки, уровня изоляции транзакций и временного пояса.
Временной пояс можно указать свой, согласно тому, который вы прописываете в settings.py проекта. А про страшное определение уровень изоляции транзакций, если оно вам не знакомо, лучше все таки прочитать из учебника по SQL — пригодится.
Создаем базу для нашего проекта
Выходим из консоли
В окружении проекта устанавливаем бэкэнд для PostgreSQL
Последний наш шаг — настроить раздел DATABASES конфигурационного файла проекта settings.py
Дальше все как обычно:
- делаем миграцию ./manage.py migrate ,
- создаем суперпользователя ./manage.py createsuperuser
- и запускаем сервер ./manage runserver .
Если у вас настроен SSH на сервере, то можно еще научить pgAdmin с локальной машины управлять удаленным сервером PostgreSQL. Для этого мы можем создать ssh-тунель командой ssh -fNq -L 5555:localhost:5432 user@domain.com .
Теперь можно из локального pgAdmin соединяться с удаленной БД по адресу localhost:5555 .
Настройка PostgreSQL
В данном рецепте мы рассмотрим методику работы с PostgreSQL в консоли и процесс подключения Django проекта к этой базе данных.
Кто такой superuser?
Это пользователь базы данных, созданный по-умолчанию, который обладает административными правами и, соответственно может быть использован для управления любым объектов внутри PostgreSQL.
После установки PostgreSQL на вашу операционную систему в БД будет зарегистрирован один суперпользователь postgres.
Используйте его, когда вам потребуется создать новую базу данных для своего проекта.
Проверка
Если вы установили PostgreSQL на свою операционную систему, то следующая команда, должна показать где на файловой системе располагается клиент БД:
Если вы правильно настроили sudo , то вы сможете войти под суперюзером:
Как вы можете видеть, команда \q позволила вам выйти из клиента.
Изменение пароля для суперюзера
Если вам вдруг потребуется изменить пароль суперпользователя, то зайдите в psql и выполните следующее:
Это необязательно делать на вашей локальной машине, но имеет очень большое значение для БД на боевом сервере, особенно, если вы разрешите внешние подключения к вашей базе данных.
Создание пользователя и базы
С помощью одной простой команды вы можете создать пользователя БД и назначить ему пароль:
Теперь можно создать базу данных и сразу привязать её к новому пользователю:
Настройка конфигурации Django
Создав пользователя и базу данных, можно приступать к внесению их данных в настройки проекта:
Блог на Django #32: Установка PostgreSQL
Сейчас для проекта используется SQLite. Это необходимо для процесса разработки. Но для развертывания потребуется более мощная база данных: PostgreSQL, MySQL или Oracle. Сделаем выбор в пользу первой, чтобы получить ее функции полнотекстового поиска.
Если вы используете Linux, установите компоненты, необходимые для работы PostgreSQL следующим образом:
Затем установите саму базу данных:
Если у вас macOS или Windows, загрузите PostgreSQL с сайта https://www.postgresql.org/download/ и установите.
Также потребуется адаптер PostgreSQL под названием Psycopg2 для Python. Эта команда установит его:
Создадим базу данных PostgreSQL. Откройте консоль и введите следующие команды:
Дальше нужно будет ввести пароль для нового пользователя. Введите его и создайте базу данных blog , сделав ее владельцем того пользователя, что только что был создан с помощью команды:
Отредактируйте файл settings.py и измените настройку DATABASES , чтобы она выглядела вот так:
Замените данные выше названием новой базы данных и данными нового пользователя. Новая база данных пустая. Запустите следующую команду, чтобы применить все миграции базы данных:
Наконец, создайте нового суперпользователя:
Можете запустить сервер разработки и перейти на административный сайт https://127.0.0.1:8000/admin/ с помощью новых данных.
Поскольку база данных поменялась, постов здесь нет. Заполните ее с помощью базовых постов так, чтобы можно было осуществлять поиск.
Подписывайтесь на канал в Дзене
Полезный контент для начинающих и опытных программистов в канале Лента Python разработчика — Как успевать больше, делать лучше и не потерять мотивацию.