2015-11-24 4 views
0

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

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

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

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

ответ

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^