Назад | Перейти на главную страницу

psql пустая база данных перед восстановлением

Я хочу восстановить базу данных postgreSQL, но перед этим мне нужно очистить целевую базу данных восстановления.

Есть ли для этого возможность psql?

Теперь я использую следующую командную строку:

psql -U postgres db_test < testdb.sql

Здесь есть два варианта - если ваша резервная копия представляет собой обычный текст, вы добавляете параметр -c в pg_dump - т.е.

pg_dump -c mydb > mydb.sql

В противном случае, если вы используете -Fc или -Ft в pg_dump, вы используете флаг -c в pg_restore

pg_dump -Ft -b mydb > db.tar

pg_restore -c -d newdb db.tar

Предполагая, что вы говорите о восстановлении из pg_dump backup ответ будет «это зависит от того, как было сделано резервное копирование», но обычно да: вы должны очистить базу данных перед восстановлением резервной копии.

Самый быстрый способ очистить базу данных в Postgres - удалить и заново создать базу данных (для этого вам, вероятно, потребуются привилегии суперпользователя), в противном случае вам придется вручную удалить каждую таблицу и любые хранимые процедуры, которые могут у вас быть (CASCADE здесь твой друг).