PostgreSQLのバージョンアップ » 履歴 » リビジョン 2
リビジョン 1 (白林檎 美和, 2021/09/23 22:59) → リビジョン 2/5 (白林檎 美和, 2021/09/23 23:07)
# PostgreSQLのバージョンアップ
1. 現バージョンを停止,バックアップ,削除。
```
# service postgresql stop
$ pkg create postgresql<現>-server postgresql<現>-contrib
$ mkdir /tmp/pg-upgrade
$ tar xvf postgresql<現>-server-<バージョン番号>.txz -C /tmp/pg-upgrade
$ tar xvf postgresql<現>-contrib-<バージョン番号>.txz -C /tmp/pg-upgrade
# pkg delete -f postgresql<現>-server postgresql<現>-contrib postgresql<現>-client
```
1. 新バージョンをインストール。
```
# make -C /usr/ports/databases/postgresql<新>-server config-recursive
# make -C /usr/ports/databases/postgresql<新>-server install clean
# make -C /usr/ports/databases/postgresql<新>-contrib config-recursive
# make -C /usr/ports/databases/postgresql<新>-contrib install clean
```
1. データを移行。*データ置場* は,デフォルトだと `/var/db/postgres`。
```
$ su -l postgres -c "/usr/local/bin/initdb --encoding=utf-8 --lc-collate=C -D <データ置場>/data<新> -U postgres"
$ su -l postgres -c "pg_upgrade -b /tmp/pg-upgrade/usr/local/bin -d <データ置場>/data<旧> -B /usr/local/bin -D <データ置場>/data<新> -U postgres"
```
1. 新バージョンを起動。
```
# service postgresql start
```
1. 新バージョンが走っているのを確かめ,バックアップした旧バージョンを削除。
```
# service postgresql status
pg_ctl: server is running (PID: <プロセス番号>)
/usr/local/bin/postgres "-D" "<データ置場>/data<新>"
$ rm -fr /tmp/pg-upgrade postgresql<旧>-server-<バージョン番号>.txz postgresql<旧>-contrib-<バージョン番号>.txz
```
1. postgresqlに依存するぱっけぇぢを,再インストール。
```
# pkg check -dna
Checking all packages: 100%
rubygem-pg has a missing dependency: postgresql<旧>-client
# portupgrade -f rubygem-pg
```