LoginSignup
6
8

More than 5 years have passed since last update.

postgresをアップグレードする(Ubuntuメイン)

Last updated at Posted at 2016-08-22

背景

PostgreSQLは、9.4 からhstore やjson形式に対応したので、古いバージョンからUpgradeが必要になる場合もあり、自分のアップデートの経験をここで記しておきたい。

使える資料

基本はこれ一つをそのままやれば、なんとかなる。自分のUpgradeしたいバージョンに合わせて、適宜変える。しかし、やはり途中でエラーなどが出るものである。

環境

ubuntu 14.04
postgres 9.3 -> 9.5

あれ?自分のバージョンは?という人は、

クライアントバージョン

psql --version

サーバーバージョン

pg=config --version 

Ubuntu

とりあえず設定ファイルをコピー

(必要性はない気がする。まあ念のため)

sudo cp /etc/postgresql/9.3/main/postgresql.conf ~/
sudo cp /etc/postgresql/9.3/main/pg_hba.conf ~/ 

Postgres9.5をインストール

updateして最新の状態にしてからインストール
(最後のpostgisはインストール失敗。なぜかよくわからない)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.5 postgresql-server-dev-9.5 postgresql-contrib-9.5
sudo apt-get install postgresql-9.5-postgis

データをDump

(Dump用のDirectoryを作成(必須ではない))

リンクでは、新しくDirectoryを作っているが、Sudo権限が必要になるので、場所は適宜自分で変更して良いので、これは飛ばしてもいい。

mkdir /mnt/dumps 
cd /mnt/dumps

Dump

以下を実行しDumpする(この場合CurrentDirectoryにDumpされるので、どこにいるか確認する)
bash
sudo /usr/lib/postgresql/9.5/bin/pg_dumpall > pre_upgrade_from_9.3_to_9.5.dump

(うまくいかない場合は、sud su postgres でpostgres User で実行するとできるかもしれないが、postgres がsudoerでない場合は、上のコマンドのsudoをつけない)

(Configファイルでデータ保存場所の変更(必須ではない))

今回は変更せず。

Postgresをストップ

postgresユーザに切り替えて、postgresユーザがsudoer でない場合は、Sudoerになってから以下を実行すると、今あるPostgreSQLがとまる。(僕の場合は9.3と9.5)

sudo /etc/init.d/postgresql stop

Clusterを新しくして起動

sudo pg_dropcluster 9.5 main
sudo pg_createcluster 9.5 main

注意:Localeの設定ができてないとエラーが出る場合は、http://qiita.com/d6rkaiz/items/c32f2b4772e25b1ba3ba などを参考に、 export=en_US.UTF-8export LC_ALl=$LANGなどを実行してからpg_createclusterをすると大丈夫かも。

sudo /etc/init.d/postgresql start 9.5

Dumpしたデータを取り込む

今の状態では、前のデータはないので、データを取り込む。
- ポート番号は、/etc/postgresql/9.5/mainを確認する。Upgradeした場合は、5433に多分なっている。
- データは自分のDumpがおいてある場所を指定

sudo su postgres
psql -d postgres -p 5433 -f ~/pre_upgrade_from_9.3_to_9.5.dump

最後にRestart(必要かどうかはわからないが。。)

sudo service postgresql restart 9.5

これで完了

最後に

前のバージョンが要らなければ削除

sudo apt-get autoremove postgres-9.3

Mac

以下にUninstallとInstallするのを貼った。

残りは、DumpしてRestoreすれば大丈夫!

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8