PostgreSQL — установка или обновление

Установка последней версии PostgreSQL на Ubuntu 14.04

Добавляем репозиторий

echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" > /etc/apt/sources.list.d/pgdg.list

Добавляем ключ репозитория

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Обновляем список пакетов и устанавливаем

sudo apt-get update
sudo apt-get install postgresql-9.6

Создание базы данных и пользователя в PostgreSQL

Заходим в окружение пользователя postgres и запускаем командный интерфейс

sudo su - postgres
psql

Создаем базу данных testdb

CREATE DATABASE testdb;

Создаем пользователя testuser с паролем testpassword

CREATE USER testuser WITH PASSWORD 'testpassword';

Даем полные права пользователю testuser на базу testdb

GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;

Обновление PostgreSQL 9.3 до версии 9.6 (9.4, 9.5)

Устанавливаем новую версию, как указанно выше.
Заходим в окружение пользователя postgres

sudo su - postgres

Смотрим список запущенных версий

pg_lsclusters

Вывод будет примерно таким. Мы видим что обе версии запущены

# Ver Cluster Port Status Owner    Data directory               Log file
# 9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
# 9.6 main    5433 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

Выключаем новую версию БД

pg_dropcluster 9.6 main --stop

Запускаем обновление версии 9.3 до версии 9.6

pg_upgradecluster 9.3 main

Смотрим что получилось

pg_lsclusters

Старая версия выключена, а новая запущена с вашей БД

# Ver Cluster Port Status Owner    Data directory               Log file
# 9.3 main    5433 down   postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
# 9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log