Oneline bash команда для создания и создания базы данных PostgreSQL - PullRequest
0 голосов
/ 05 мая 2018

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

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

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

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

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

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

1 Ответ

0 голосов
/ 05 мая 2018

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

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...