Мой компьютер сломался, но, к счастью, я сделал резервную копию папки C: \ Program Files \ PostgreSQL.
Теперь я работаю на новом компьютере и хочу импортировать предыдущие базы данных Postgres, которые хранятся на внешнем диске.
Я хочу экспортировать схему конкретной базы данных, которая находится в папке резервного копирования.
Файл PostgreSQL\8.3\data\global\pg_database
содержит информацию о базах данных и их OID; например:
"db1" 20012
"db2" 23456
Я хочу экспортировать схему «db1».
В папке есть папка с именем «20012», в "PostgreSQL\8.3\data\base\20012"
которой много файлов [500 файлов].
Есть ли способ экспортировать схему этой базы данных?
Обратите внимание, что все файлы базы данных Postgresql расположены на внешнем жестком диске, и я хотел бы экспортировать схему этой базы данных в файл SQL, взять этот файл, запустить его и создать такую же точную базу данных локально.
источник
pg_dump -s databasename > schema.sql
выведет результат вschema.sql
файлВ Linux вы можете сделать это так
Возможно, он может работать и в Windows , если не попробовать то же самое с pg_dump.exe
источник
Я запускаю Postgres 9.6, где мне пришлось экспортировать определенную схему вместе с данными.
Я использовал следующую команду:
Если вам нужна только схема без данных, используйте переключатель
s
вместоn
Ниже приведен список переключателей pg_dump:
источник
Обратите внимание, что у вас достаточно прав для доступа к этой схеме. Если вы хотите сделать резервную копию в качестве конкретного пользователя, добавьте имя пользователя в эту команду, перед которой стоит
-U
источник
Если вам нужны только таблицы создания, вы можете сделать
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
источник
Для Linux: (без данных)
pg_dump -s -t tablename databasename > dump.sql
(Для конкретной таблицы в базе данных)pg_dump -s databasename > dump.sql
(Для всей базы данных)источник
настроить новый сервер postgresql и заменить его папку данных файлами с внешнего диска.
Затем вы сможете запустить этот сервер postgresql и получить данные с помощью pg_dump (pg_dump -s только для схемы, как упоминалось)
источник
Вы должны использовать что-то вроде этого
pg_dump --schema=your_schema_name db1
, подробности смотрите здесьисточник