398 July 21, 2024, 5:11 p.m.

Установка postgresql и перенос данных

Задача: установить postgresql на хост систему и перенести базу данных

Для достижения потребуется:

  • установить базу данных;
  • выдать доступы;
  • сделать экспорт базы данных;
  • сделать импорт базы данных

Установка базы данных

sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/pgdg.gpg
sudo apt update
sudo apt install postgresql

Настройка пароля

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'p4ssw0rdAdmin';

Настройка доступа к базе данных

Выполняем команду и даем сетевой доступ

sudo nano /etc/postgresql/*/main/postgresql.conf

Вставляем

listen_addresses = '*'

Разрешаем авторизацию

sudo nano /etc/postgresql/*/main/pg_hba.conf
host    all             all             0.0.0.0/0               md5
host    all             all             ::/0                    md5

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

psql -h <db-url> -U <login> -d <database>
CREATE USER newuser WITH PASSWORD 'yourpassword';
CREATE DATABASE newdatabase OWNER newuser;

Экспорт базы данных

export PGPASSWORD='p4ssw0rdAdmin' 
pg_dump -U postgresql -d <databaseName> -h <databaseAddr> > /tmp/database-<databaseName>-$(date +%Y-%m-%d).pgsql.sql 

Импорт базы данных

psql -h <destination_host> -U <destination_user> -d <destination_database> -f /path/to/backup.sql