如何将 PostgreSQL 数据从 Postgres.app 版本迁移到 Homebrew 安装版本
How to migrate PostgreSQL data from Postgres.app version to Homebrew-installed version
我几年前使用 Postgres.app 安装了 PostgresSQL(版本 9.4),但从现在开始我想使用 Homebrew 来管理 PostgreSQL。我在 Mac OS 10.14。我已经使用 Homebrew 安装了最新版本 (12.1),我想知道如何将我的数据移动到这个新版本。我读过的所有更新指南都假定新旧版本安装在同一位置。
数据目录:
/Users/robin/Library/Application Support/Postgres/var-9.4
/usr/local/Cellar/postgresql/12.1
假设您知道 Postgres.app 的 .../data/
目录所在的位置(检查您的偏好),您应该能够使用 pg_upgrade
从 9.4 迁移到 12。您将需要首先对 v.12 集群进行全新 initdb
。
根据您的环境,这里有一些步骤,假设 1) postgres v. 12 不在您的系统上 运行(或者您停止了它),并且 2) 您没有在 v 中创建数据库. 12还:
export PGDATANEW=/Users/robin/pgsql/12/data # (or desired location)
mkdir -p $PGDATANEW
/usr/local/Cellar/postgresql/12.1/bin/initdb -D $PGDATANEW -U postgres
export PGDATAOLD="/Users/robin/Library/Application Support/Postgres/var-9.4"
export PGBINOLD=/Applications/Postgres.app/Contents/Versions/latest/bin
export PGBINNEW=/usr/local/Cellar/postgresql/12.1/bin
/usr/local/Cellar/postgresql/12.1/bin/pg_upgrade -U postgres
如果您已有现有的 v.12 数据库,则需要转储数据,将其保存在某处,并在执行 initdb
步骤[=18 之前擦除现有的 v.12 数据文件夹=]
选项2:另一个选项是pg_dump
/pg_dumpall
你的9.4数据到一个文件,然后导入到你的v.12数据库
披露:我为 EnterpriseDB (EDB)
工作
我几年前使用 Postgres.app 安装了 PostgresSQL(版本 9.4),但从现在开始我想使用 Homebrew 来管理 PostgreSQL。我在 Mac OS 10.14。我已经使用 Homebrew 安装了最新版本 (12.1),我想知道如何将我的数据移动到这个新版本。我读过的所有更新指南都假定新旧版本安装在同一位置。
数据目录:
/Users/robin/Library/Application Support/Postgres/var-9.4
/usr/local/Cellar/postgresql/12.1
假设您知道 Postgres.app 的 .../data/
目录所在的位置(检查您的偏好),您应该能够使用 pg_upgrade
从 9.4 迁移到 12。您将需要首先对 v.12 集群进行全新 initdb
。
根据您的环境,这里有一些步骤,假设 1) postgres v. 12 不在您的系统上 运行(或者您停止了它),并且 2) 您没有在 v 中创建数据库. 12还:
export PGDATANEW=/Users/robin/pgsql/12/data # (or desired location)
mkdir -p $PGDATANEW
/usr/local/Cellar/postgresql/12.1/bin/initdb -D $PGDATANEW -U postgres
export PGDATAOLD="/Users/robin/Library/Application Support/Postgres/var-9.4"
export PGBINOLD=/Applications/Postgres.app/Contents/Versions/latest/bin
export PGBINNEW=/usr/local/Cellar/postgresql/12.1/bin
/usr/local/Cellar/postgresql/12.1/bin/pg_upgrade -U postgres
如果您已有现有的 v.12 数据库,则需要转储数据,将其保存在某处,并在执行 initdb
步骤[=18 之前擦除现有的 v.12 数据文件夹=]
选项2:另一个选项是pg_dump
/pg_dumpall
你的9.4数据到一个文件,然后导入到你的v.12数据库
披露:我为 EnterpriseDB (EDB)
工作