Экспорт / Импорты базы Postgres


Экспорт базы Postgres

// Создание бекапа
$ pg_dump database_name > database_name_20160527.sql


Импорт базы

$ su - postgres
$ psql

-- Если база не создана
$ CREATE DATABASE <db_name>;

exit

$ psql database_name < database_name_20160527.sql


https://www.netguru.co/tips/how-to-dump-and-restore-postgresql-database


Еще есть такой вариант:


$ cd <db_dump_dir>

-- Данные будут перезаписаны
$ pg_restore -d <db_name> myDump.dump -j 4 -c


Экспорт таблицы

$ pg_dump --no-owner -d <database_name> -t <table_name> > file.sql


$ pg_dump -h <адрес сервера СУБД> \
    -U <имя пользователя> \
    -p <порт> \
    --no-owner -d <database_name> -t <table_name> > file.sql


Миграция схемы

// Export
$ pg_dump --host=<DataBaseHostName> --dbname=<DataBaseName> --schema=<SCHEMA_NAME> --username=<DataBaseUserName> > ~/tmp/<SCHEMA_NAME>.dmp


// Import
$ psql --host=<DataBaseHostName>  --dbname=<DataBaseName> --username=<DataBaseUserName> < ~/tmp/<SCHEMA_NAME>.dmp


Миграция данных в Облако Yandex

https://practicum.yandex.ru/trainer/ycloud/lesson/7fcf670e-67d5-48ef-9456-527ba71e78f7/


//
// В этой команде при экспорте исключаются все данные, которые связаны с привилегиями и ролями.
$ pg_dump -h <адрес сервера СУБД> \
    -U <имя пользователя> \
    -p <порт> \
    --schema-only \
    --no-privileges \
    --no-subscriptions \
    -d <имя базы данных> -Fd -f /tmp/db_dump


$ pg_restore -Fd -v --single-transaction -s --no-privileges \
          -h <адрес приемника> \
          -U <имя пользователя> \
          -p 6432 \
          -d <имя базы данных> /tmp/db_dump