Как быстро сделать дамп базы данных

Дамп базы PostgreSQL

Если сервер базы достпен по сети

pg_dump -C -h host -U remote_username remote_db_name | psql -h localhost -U local_username local_db_name

Если нет прямого доступа к базе

  1. Создаем дамп на сервере
  2. Копируем его локально через scp
  3. Загружаем дамп локально

Казалось бы, все очень просто. Но есть один очень важный ньюанс. На сервере и локально у вас скорее всего разные пользователи, поэтому нужно делать дамп и импорт специальными командами, иначе получим ошибку 

ERROR:  role "remote_username" does not exist

pg_dump -Fc --no-owner -h localhost -U remote_username remote_db_name -f db.dump
scp ssh_username@remote_host:db.dump db.dump
pg_restore --no-owner --role=local_username -d local_db_name db.dump

Комментарии