На ночь глядя решился написать гайд по установке СУБД PostgreSQL для использования вместе с Django.
Хотя в мануалах Django и рекомендуется использовать PostgreSQL, но среди разработчиков бытует мнение, что MySQL гораздо проще для начинающего разработчика.
Я с этим мнением не согласен. И попытаюсь Вам это доказать.
За 8 простых шагов я покажу как установить PostgreSQL в Ubuntu 14.04 LTS и настроить Django для работы с ним.
- Ставим сам сервер PostgreSQL и библиотеку разработчика (она пригодится нам при установке бэкэнда)
sudo apt-get install postgresql postgresql-server-dev-9.3
Если вы решите использовать более свежую Ubuntu 16.04 LTS, то PostgreSQL там будет уже версии 9.5.
sudo apt-get install postgresql postgresql-server-dev-9.5
-
Открываем консоль PostgreSQL
sudo -u postgres psql postgres
-
Задаем пароль администратора БД
\password postgres
-
Создаем и настраиваем пользователя при помощи которого будем соединяться с базой данных из Django (ну очень плохая практика все делать через ... суперпользователя). Заодно указываем значения по умолчанию для кодировки, уровня изоляции транзакций и временного пояса.
create user user_name with password 'password'; alter role user_name set client_encoding to 'utf8'; alter role user_name set default_transaction_isolation to 'read committed'; alter role user_name set timezone to 'UTC';
Временной пояс можно указать свой, согласно тому, который вы прописываете в
settings.py
проекта. А про страшное определение уровень изоляции транзакций, если оно вам не знакомо, лучше все таки прочитать из учебника по SQL - пригодится. -
Создаем базу для нашего проекта
create database django_db owner user_name;
-
Выходим из консоли
\q
-
В окружении проекта устанавливаем бэкэнд для PostgreSQL
pip install psycopg2
-
Последний наш шаг - настроить раздел
DATABASES
конфигурационного файла проектаsettings.py
'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'django_db', 'USER' : 'user_name', 'PASSWORD' : 'password', 'HOST' : '127.0.0.1', 'PORT' : '5432',
На этом все!
Дальше все как обычно:
- делаем миграцию
./manage.py migrate
, - создаем суперпользователя
./manage.py createsuperuser
- и запускаем сервер
./manage runserver
.
Если у вас настроен SSH на сервере, то можно еще научить pgAdmin с локальной машины управлять удаленным сервером PostgreSQL. Для этого мы можем создать ssh-тунель командой ssh -fNq -L 5555:localhost:5432 user@domain.com
.
Теперь можно из локального pgAdmin соединяться с удаленной БД по адресу localhost:5555
.