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