Очистить базу данных postgresql как она была новой - PullRequest
2 голосов
/ 18 ноября 2010

Я создал дамп базы данных PostgreSQL, используя psql.

Теперь я хочу восстановить эту резервную копию из файла:

psql -d thesamename -f /my/backup/file

Но я получаю ошибки, что данные уже существуют.

Существует ли какая-либо команда для удаления всего из базы данных, чтобы привести ее к только что созданному состоянию, кроме повторного удаления и создания?
(Я не хочу снова указывать владельца, табличное пространство и т. Д.)

Может быть, какой-нибудь способ перезаписать базу данных из базы данных? (файл резервной копии с другого сервера базы данных)

Ответы [ 3 ]

5 голосов
/ 18 ноября 2010

https://www.postgresql.org/docs/current/static/app-pgdump.html

https://www.postgresql.org/docs/current/static/app-pgrestore.html

Обратите особое внимание на параметр -c для этих сценариев.

2 голосов
/ 22 августа 2012

Вы можете удалить схему public вашей базы данных и заново создать ее после:

DROP SCHEMA PUBLIC CASCADE;
CREATE SCHEMA PUBLIC AUTHORIZATION postgres;
GRANT ALL ON SCHEMA public TO public;

Надеюсь, это поможет ...

1 голос
/ 31 января 2013

вы можете манипулировать им как хотите ... и вам нужен только сброс данных. Раз вы начнете создавать дамп, файл схемы данных будет сгенерирован автоматически. И нет необходимости удалять старые данные. Он будет перекрывать новые данные поверх существующих данных .

Вы можете перейти по этой ссылке для уточнения ..

http://www.postgresql.org/docs/8.4/interactive/app-pgdump.html

http://www.postgresql.org/docs/8.4/interactive/app-pgrestore.html

Вы можете использовать

GRANT ALL ON SCHEMA public TO public;

...