Я хочу восстановить базу данных 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
здесь твой друг).