Недавно я столкнулся с (возможно, известной проблемой), когда версии Postgre отличаются по старшему номеру (всегда обновление, без понижения), например, с типами полей.
В моем случае было очень мало противоречивых данных, поэтому я изменил их вручную, но хотел узнать больше на случай, если я снова столкнусь с этой проблемой с дополнительными данными.
В этом конкретном случае (но это может быть распространено на другие возможные проблемы в будущем) я создал резервную копию, используя только вставки данных, поскольку у меня уже была сохранена структура таблицы.
Проблема возникла при обновлении с 8.x на 9.x с типом money
, у меня были ошибки, потому что вставки имели значение что-то вроде
INSERT INTO foo(...) VALUES (...,'EUR300',...);
Итак, postgres отказывался вставлять это в 9.1.
Моя идея, и то, что я пробовал, состоит в том, чтобы преобразовать это поле в DECIMAL и переделать дамп, это сработало, но в будущем есть ли другой механизм, например, использование более нового pg_dump для подключения к старой базе данных вместо текущей? (Не проверял это)