В этой статье я покажу вам как создать базу данных постгрес через консоль. Тут есть тонкости. Если вы работали c mysql, то вам будет легко. Итак вы должны уметь немного работать через консоль BASH. Этот путь хорош для дебианоподобных операционок ubuntu, kubuntu, debian. Я покажу вам как настроить базу постгрес для Django. Приступим.
#обновите ваши библиотеки
sudo apt-get update
#теперь загрузим библиотеки для работы postgresql + python3.
#Это для фреймворка Django (python3-pip python3-dev).
sudo apt-get install python3-pip python3-dev libpq-dev postgresql postgresql-contrib
#остановка службы и старт службы. попытайтесь остановить и запустить службу
#если не сработает, то воспользуйтесь способом ниже
service postgresql start
service postgresql stop
#Полный список команд управления службой
service postgresql
#перезагрузка БД
/etc/init.d/postgresql restart
#заходим в консоль postgres. у вас должна поменяться строка приветствия
sudo -u postgres psql
Итак мы в консоле postgresql. Это особая консоль. В ней не действуют команды BASH. В ней можно обсмотреть нужные данные. Вы сможете протестировать быстродействие запросов если включите нужные настройки.
#создание базы
CREATE DATABASE test;
#создание пользователя
CREATE USER test_user WITH PASSWORD '123';
#накидываю права
ALTER ROLE test_user SET client_encoding TO 'utf8';
ALTER ROLE test_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE test_user SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE test TO test_user;
В результате выполнения этих команд у вас должна появится базы данных PostgreSQL. Помимо самой базы данные появился пользователь test_user, привязанный к базе. Очень важно привязать пользователя к базе. Если у определённого пользователя нет прав на базу данных, то вы получите предупреждение и не сможете просмотреть и отредактировать данные. В постгресе помимо таблиц существует масса других элементов: тригеры пользовательские представления, генераторы и т.д. К ним тоже должны быть права. Я покажу вам потом как накинуть права сразу на все элементы базы. Теперь осмотритесь.
#осмотр всех пользователей. должно быть 2 пользователя postgres и test_user
\du
#осмотр списка баз данных. должны появится база test
\l
#пролезаем в базу данных. должно поменяться приветствие в командной строке
\c test
#выводим таблицы. у вас должна быть пустота.
#мы не создали ни одной таблицы
\dt
#выход из консоли PostgreSQL
\q
Очень часто пользователи входят в консоль под пользователем postgres (sudo -u postgres psql) и создают таблицы или редактируют некоторые части базы. В этом случае при переносе базы могут возникнуть проблемы. Потом чтобы решить эту проблемы вы должны перебивать права на созданные или изменённые элементы базы постгрес. Старайтесь создавать и редактировать базу под определённым пользователем, а нет от имени postgres. Так будет меньше проблем.
#пробираемся в базу под заданным пользователем
\c test test_user localhost 5432
\с база пользователь localhost порт
Если вы активно используете фрейморк Django, то подобная настройка базы PostgreSQL на сервере вам подойдёт. Подобная настройка хороша как для локального сервера разработки, так и для удалённого боевого сервера VDS. При подключении к базе данных для вашего сайта не используйте суперпользователя postgres. Это опасно! Слишком много прав у этого пользователя. Используйте подключение через postgres для быстрого просмотра данных.