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>
только для таблиц, которые вы хотите сохранить.