Подтвердить что ты не робот

Как удалить все базы данных в Postgres?

Я беру ежедневные образы нашего окна разработки postgres, используя:   pg_dumpall -h 127.0.0.1 -U user -w | gzip blah.gz

Так как 9.0 теперь является кандидатом на выпуск, я бы хотел ежедневно восстановить эту ежедневную резервную копию в поле postgres9.0rc1 для тестирования, однако я не уверен, как это сделать script. Есть ли какой-нибудь каталог, который я могу использовать для этого?

4b9b3361

Ответ 1

Вы можете сделать "drop cluster" и "create cluster", который автоматически удалит все базы данных. Удалите все данные в каталоге $PGDATA и заново создайте кластер, используя:

initdb -D /usr/local/pgsql/data

Ответ 2

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

$ pg_dropcluster 9.2 main
$ pg_createcluster 9.2 main
$ pg_ctlcluster 9.2 main start
$ pg_restore -f your_dump_file

где 9.2= cluster version и main= cluster name

Ответ 3

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

1) Создайте каталог где-нибудь (например, /home/USERNAME/BACKUPDIR).

2) В качестве суперпользователя перейдите в каталог данных postgresql (Fedora, например /var/lib/pgsql/)

3) Переместите data в папку резервного копирования: mv data /home/USERNAME/BACKUPDIR

4) Затем повторно создайте новую базу данных, используя, например, sudo postgresql-setup --initdb --unit postgresql