pg_dump: экспорт базы данных
# Дамп одной базы в custom формат (сжатый, параллельный restore)
pg_dump -U postgres -Fc -d mydb > mydb.dump
# Дамп в SQL-формате (читаемый)
pg_dump -U postgres -d mydb > mydb.sql
# Только схема (без данных)
pg_dump -U postgres --schema-only -d mydb > schema.sql
pg_restore: импорт на новом сервере
# Создаём базу на новом сервере
createdb -U postgres mydb
# Восстановление из custom формата
pg_restore -U postgres -d mydb -j 4 mydb.dump
# -j 4 — использовать 4 процесса параллельно
💡 Custom формат (Fc) в 3–10 раз быстрее восстанавливается чем SQL, и поддерживает параллельный restore с -j.
Быстрая передача через pipe
# Без сохранения дампа на диске
pg_dump -U postgres -Fc mydb | ssh root@NEW_SERVER "pg_restore -U postgres -d mydb"
Проверка после миграции
-- Сравниваем количество строк
SELECT schemaname, tablename, n_live_tup
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;
⚠️ Убедитесь что версия PostgreSQL на новом сервере >= версии на старом. Откат на более старую версию не поддерживается.