Meu computador quebrou, mas felizmente fiz backup da pasta C: \ Arquivos de programas \ PostgreSQL.
Agora estou trabalhando em um novo computador e gostaria de importar os bancos de dados Postgres anteriores que estão armazenados no disco externo.
Gostaria de exportar o esquema de um banco de dados específico que está localizado na pasta de backup.
O arquivo PostgreSQL\8.3\data\global\pg_database
contém informações sobre bancos de dados e seus OIDs; por exemplo:
"db1" 20012
"db2" 23456
Eu gostaria de exportar o esquema de "db1".
Há uma pasta chamada "20012" em uma pasta "PostgreSQL\8.3\data\base\20012"
que contém muitos arquivos [500 arquivos].
Existe alguma maneira de exportar o esquema desse banco de dados?
Observe que todos os arquivos do banco de dados Postgresql estão localizados em um disco rígido externo e eu gostaria de exportar o esquema desse banco de dados em um arquivo SQL, pegar esse arquivo, executá-lo e criar o mesmo banco de dados localmente.
fonte
pg_dump -s databasename > schema.sql
produzirá o resultado emschema.sql
arquivoNo Linux, você pode fazer assim
Talvez funcione no Windows também, se não tente o mesmo com pg_dump.exe
fonte
Estou executando o Postgres 9.6, onde tive que exportar um esquema específico junto com os dados.
Usei o seguinte comando:
Se você quiser apenas o esquema sem dados, use a opção em
s
vez den
Abaixo está a lista de opções do pg_dump:
fonte
Observe que você tem privilégios suficientes para acessar esse esquema. Se você quiser fazer backup como um usuário específico, adicione o nome de usuário no comando precedido por
-U
fonte
Se você quiser apenas criar tabelas, pode fazer
pg_dump -s databasename | awk 'RS="";/CREATE TABLE[^;]*;/'
fonte
Para Linux: (dados excluídos)
pg_dump -s -t tablename databasename > dump.sql
(Para uma tabela específica no banco de dados)pg_dump -s databasename > dump.sql
(Para todo o banco de dados)fonte
configure um novo servidor postgresql e substitua sua pasta de dados pelos arquivos de seu disco externo.
Você poderá então iniciar o servidor postgresql e recuperar os dados usando pg_dump (pg_dump -s para o esquema apenas como mencionado)
fonte
Você deve usar algo assim
pg_dump --schema=your_schema_name db1
, para obter detalhes, dê uma olhada aquifonte