psql banco de dados vazio antes da restauração

3

Eu quero restaurar um banco de dados do postgreSQL, mas antes disso eu preciso esvaziar o banco de dados de destino da restauração.

Existe uma opção do psql para fazer isso?

Agora eu uso uma linha de comando da seguinte forma:

psql -U postgres db_test < testdb.sql
    
por aleroot 31.08.2010 / 21:07

2 respostas

8

Existem duas opções aqui - se o seu backup é simples, então você adiciona a opção -c ao pg_dump - ie

pg_dump -c mydb > mydb.sql

Caso contrário, se você estiver usando -Fc ou -Ft em pg_dump, use o sinalizador -c no pg_restore

pg_dump -Ft -b mydb > db.tar

pg_restore -c -d newdb db.tar

    
por 31.08.2010 / 22:54
1

Supondo que você esteja falando sobre a restauração de um pg_dump backup, a resposta é "depende de como o backup foi feito", mas geralmente sim: você deve esvaziar o banco de dados antes de restaurar o backup.

A maneira mais rápida de esvaziar um banco de dados no Postgres é descartar e recriar o banco de dados (você provavelmente precisará de privilégios de superusuário para isso), caso contrário você terá que descartar manualmente cada tabela e quaisquer procedimentos armazenados que possa ter ( CASCADE é seu amigo aqui).

    
por 31.08.2010 / 21:35