Skip to content

Instantly share code, notes, and snippets.

@facilita-tecnologia
Created August 25, 2019 16:32
Show Gist options
  • Save facilita-tecnologia/6d548be0bf09ab7091b12bceb2f002bc to your computer and use it in GitHub Desktop.
Save facilita-tecnologia/6d548be0bf09ab7091b12bceb2f002bc to your computer and use it in GitHub Desktop.
Publicado em 28 de março de 2011
Precisa copiar o esquema do banco de dados (estrutura da tabela) com ou sem os dados da tabela de um banco de dados postgres existente?
pg_dump -Cs DB_NAME> / tmp / schema_dump
-C switch adiciona as instruções CREATE
-s switch especifica dumping apenas o esquema não os dados
Se você quiser os dados também, use
pg_dump -C DB_NAME> / tmp / schema_dump
Se você deseja APENAS os dados e não as instruções CREATE do banco de dados ou da tabela, use
pg_dump -a DB_NAME> / tmp / data_dump
Todos os dados acima são usados ​​como comandos COPY, que são mais rápidos, mas podem não ser compatíveis com outros mecanismos de banco de dados.
Se você quiser despejar dados de postgres em outro banco de dados, faça o dump como instruções INSERT usando
pg_dump -D DB_NAME> / tmp / data_dump_as_inserts
Isso usa o formato da tabela INSERT INTO (col1, col2) VALUES (val1, val2). Usar um "d" minúsculo omite os mapeamentos de colunas para um pequeno aumento na velocidade se você souber que a tabela está estruturada da mesma maneira no banco de dados de destino.
Para restaurar os dados:
createdb -T template0 dbname
psql dbname <infile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment