试图找到从PostgreSQL 10.6
到postgreSQL 11.1
的迁移路径。
在两个版本中使用pg_upgrade
都会给我带来错误。我认为11.1
会用来将过时的表格转换为货币:
$ /usr/local/Cellar/postgresql/11.1/bin/pg_upgrade -v \
> -b /usr/local/Cellar/postgresql@10/10.6/bin \
> -B /usr/local/Cellar/postgresql/11.1/bin \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres
Running in verbose mode
Performing Consistency Checks
-----------------------------
Checking cluster versions
This utility can only upgrade to PostgreSQL version 11.
Failure, exiting
由于10.6
的预期结果,因为看不到前向结构:
/usr/local/Cellar/postgresql@10/10.6/bin/pg_upgrade -v \
> -b /usr/local/Cellar/postgresql@10/10.6/bin \
> -B /usr/local/Cellar/postgresql/11.1/bin \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres
Running in verbose mode
Performing Consistency Checks
-----------------------------
Checking cluster versions
New cluster data and binary directories are from different major versions.
Failure, exiting
如何迁移表以使其与版本11.1
一起正常使用?我假设使用的是后者版本,并且我的目录有效。
答案 0 :(得分:2)
是的,您需要使用要升级到(11.1)版本的pg_upgrade。
您的-b和-B选项看起来不错。但是,您的-d和-D不能相同!配置位置还定义了数据位置,这些位置不能相同。您需要使用-D指定已初始化的11.1集群的配置位置。
如果您不希望pg_upgrade复制所有数据,请使用--link选项使用硬链接而不是复制。升级后,您可以删除旧数据目录。