Oneline bash команда для создания дампов и создания базы данных PostgreSQL

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

Я использовал эту команду:

"pg_dump --clean -U user db | psql db_dev"

который, казалось, работал, но я понял, что он не удаляет таблицы, которых нет в db,

Так что, если я запускаю эту команду, а затем создаю таблицу "table" в DEV_DB и снова запустите команду, "table" все еще присутствует в DEV_DB база данных, хотя в DB нет.

Вы знаете, как изменить команду, чтобы она работала правильно?

1 ответ

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

psql postgres -c 'drop database db_dev; create database db_dev;'
pg_dump --clean -U user db | psql db_dev

Или же:

dropdb db_dev
createdb db_dev
pg_dump --clean -U user db | psql db_dev
Другие вопросы по тегам