Herkou pg_restore к базе данных, которая изменилась

Мне интересно, что мне делать, если я использую Heroku Postgres и хочу сбросить данные App 1.0тогда я хочу pg_restore данные для новой версии приложения, App 2.0, Проблема в том, что App 2.0 имеет новые поля и таблицы и документация pg_restore пишет:

... выдаст команды, необходимые для восстановления базы данных до состояния, в котором она находилась на момент сохранения.

Я не хочу восстанавливать базу данных до состояния, в котором она была App 1.0Я только хочу получить данные и поместить их в новую базу данных. Добавленные таблицы и поля не должны конфликтовать с данными в файле дампа.

Одним из вариантов будет pg_restore и "восстановите базу данных до состояния, в котором она находилась на момент сохранения", а затем снова запустите миграцию. Это лучший способ пойти? Там может быть лучший способ, спасибо за ваши предложения.

1 ответ

Решение

Вы можете попробовать pg_dump --data-only который пропустит создание таблицы и выгрузит только строки данных. Затем, когда вы восстановите, ваши данные попадут в существующие таблицы. Поэтому вам нужно убедиться, что они уже существуют в новой базе данных. Я не уверен, что произойдет, если определения таблиц будут другими.

В качестве альтернативы, вы можете сделать pg_dump --table <table> только для таблиц, которые вы хотите сохранить.

Другие вопросы по тегам