Postgresql的pg_dump和pg_restore跨越不同的主要版本?

时间:2013-08-28 10:13:58

标签: postgresql upgrade pg-dump pg-restore

最近,当Postgre的版本主要数量不同(总是升级,没有降级)时,我遇到了一个(可能是已知问题),例如字段类型。

在我的情况下,几乎没有相互冲突的数据,所以我手动更改了它,但想知道更多,以防我再次遇到更多数据这个问题。

在这个具体案例中(但可以扩展到将来可能遇到的其他问题),我只使用数据插入创建了备份,因为我已经保存了表结构。

当使用money类型从8.x升级到9.x时出现问题,我收到错误,因为插入的值类似于

INSERT INTO foo(...) VALUES (...,'EUR300',...);

所以postgres拒绝在9.1

中插入

我的想法,我尝试的是将该字段转换为DECIMAL并重做转储,这有效,但在将来,还有另一种机制,比如使用更新的pg_dump连接到旧数据库而不是当前的数据库? (没有测试过这个)

1 个答案:

答案 0 :(得分:2)

在不同版本之间进行操作时,应始终使用pg_dump版本。从8.x到9.1的含义,您应该使用pg_dump版本9.1。它通常应该处理任何必要的转换。