Экспорт БД с pgAdmin-III PostgreSQL

как экспортировать БД Postgresql в SQL, который может быть выполнен в другой pgAdmin?

  • экспорт в файл резервной копии, не работает, когда есть разница в версии
  • экспорт в виде файла SQL, не выполняется при попытке запуска на другом pgAdmin

Я попытался экспортировать БД с pgAdmin III но когда я попытался выполнить SQL в другой pgAdmin Он выдает ошибку в SQL, когда я пытался "восстановить" файл резервной копии, он говорит, что есть разница в версии, что он не может выполнить импорт/восстановление.

Итак, есть "безопасный" способ экспорта БД в стандартный SQL, который может быть выполнен просто в pgAdmin редактор SQL, независимо от того, какая версия это?

2 ответов


не пытайтесь использовать PgAdmin-III для этого. Использовать pg_dump и pg_restore напрямую, если это возможно.

используйте версию pg_dump с целевого сервера для сброса исходного сервера. Поэтому, если вы переходите от (скажем) 8.4 к 9.2, вы будете использовать 9.2 pg_dump создать дамп. Если вы создадите -Fc дамп пользовательского формата (рекомендуется) вы можете использовать pg_restore чтобы применить его к новому серверу базы данных. Если вы сделали обычный дамп SQL, вы можете применить его с помощью psql.

посмотреть руководство по обновлению кластера PostgreSQL.

теперь, если вы пытаетесь даунгрейд, это совершенно отдельный беспорядок.

вам будет трудно создать дамп SQL, который будет работать в любой версия PostgreSQL. Допустим, вы создали представление, которое использует WITH запрос. Это не будет работать при восстановлении в PostgreSQL 8.3, потому что он не поддерживает WITH. Есть масса других примеров. Если вы должны поддерживать старый PostgreSQL версии, сделайте свою разработку на самой старой версии, которую вы все еще поддерживаете, а затем экспортируйте дампы для загрузки более новых версий. Вы не можете разумно развиваться на новой версии и экспортировать для старых версий, это не будет работать хорошо, если вообще.

более тревожно, разработка на старой версии не всегда даст вам код, который работает на новой версии либо. Иногда добавляются новые ключевые слова, в которых вводится поддержка новых функций спецификации. Иногда проблемы фиксируются таким образом, что влияет на код пользователя. Например, если бы вы разрабатывали (древний и неподдерживаемый) 8.2, у вас было бы много проблем с неявными приведениями к тексту на 8.3 и выше.

лучше всего протестировать все поддерживаемые версии. Подумайте о настройке автоматического тестирования с использованием чего-то вроде Jenkins CI. Да, это боль, но это цена за программное обеспечение, которое со временем улучшается. Если Pg будет поддерживать идеальную совместимость назад и вперед, она никогда не улучшится.


экспорт / импорт с pg_dump и psql

1.Установить PGPASSWORD

export PGPASSWORD='h0ld1tn0w';

2.Экспорт БД с помощью pg_dump

pg_dump -h <<host>> -U <<username>> <<dbname>> > /opt/db.out 

/ opt / db.вне путь сброса. Вы можете указать свой собственный.

3.Затем снова установите PGPASSWORD другого хоста. Если хост такой же или пароль такой же, то это не требуется.

4.Импорт БД на другой хост

psql -h <<host>> -U <<username>> -d <<dbname>> -f /opt/db.out

если имя пользователя отличается, найдите и замените его локальным имя пользователя в БД.файл. И убедитесь, что имя пользователя заменено, а не данные.

если вы все еще хотите использовать PGAdmin, см. Процедуру ниже.

экспорт БД с PGAdmin:

выберите DB и нажмите Экспорт.

  1. Параметры Файла
    • имя DB имя файла для вас локальный каталог
    • Выберите Формат-Plain
  2. Игнорировать Параметры Дампа #1
  3. Параметры Дампа #2
    • Регистрация Use Insert Commands
  4. объекты
    • снимите флажок таблицы, если вы не хотите каких-либо

импорт БД с помощью PGAdmin:

  1. создать новую БД.
  2. удерживая выбранную БД, нажмите Menu->Plugins->PSQL Console
  3. введите следующую команду для импорта DB

    \i /path/to/db.sql
    

если вы хотите экспортировать схему и данные отдельно.

Экспорт Схемы

  1. Параметры Файла
    • имя файла схемы у вас локальный каталог
    • Выберите Формат-Plain
  2. Параметры Дампа #1
    • Регистрация Only Schema
    • Регистрация Blobs (проверил по умолчанию)

Экспорт Данных

  1. Параметры Файла
    • имя файл данных у вас локальный каталог
    • Выберите Формат-Plain
  2. Параметры Дампа #1
    • Регистрация Only Data
    • Регистрация Blobs (проверил по умолчанию)
  3. Параметры Дампа #2
    • Регистрация Use Insert Commands
    • Регистрация Verbose messages (проверил по умолчанию)

Примечание: требуется время для экспорта / импорта на основе размера БД и с PGAdmin это добавит еще немного времени.