1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

macOSでPostgres.appを使用している場合のメジャーアップデート(データ移行有)

Last updated at Posted at 2023-02-08

はじめに

Local環境でPostgeSQLの14を使用していたのですが、15にバージョンアップしたくなりました。ただHomebrew経由でインストールしたPostgreSQLはなく、GUIのPostgres.appからインストールしたPostgreSQLを使用していました。GUI版かつデータ移行有でのメジャーバージョンアップを解説したサイトがそんなになさそうだったので記録しておきます。どなたかの参考になれば幸いです。(基本的にPostgres.app公式サイトのドキュメントを参考にしてますが、公式サイトはデータの移行とメジャーバージョンアップを分けて記載しており少々分かりにくかったです。)

環境

項目 情報
OS macOS Ventura 13.1
プロセッサ 1.6 GHz デュアルコアIntel Core i5
PostgreSQL(アップデート前) 14.6
PostgreSQL(アップデート後) 15.1

メジャーアップデート手順

旧バージョンのバックアップ取得

Postgres.appを開き、サーバが起動してなければ起動する。

postgres_backup_1.png
postgres_backup_2.png

一時フォルダ作成

ターミナルで以下のコマンドを実行し、任意の場所に一時フォルダを作成する。(フォルダ名は何でもいいです。)

$ mkdir -m 777 postgresql_dump
$ cd postgresql_dump

バックアップコマンド実行

ターミナルで以下のコマンドを実行し、旧バージョンのPostgreSQLのデータをバックアップする。

$ pg_dumpall --quote-all-identifiers | gzip >postgresapp.sql.gz
$ ls -l
total 8
-rw-r--r--  1 xxxxxx  xxxxxx  1174  2  8 21:36 postgresapp.sql.gz

旧バージョンのPostgres.appのアンインストール

旧バージョンのサーバ停止

Postgres.appを開き、旧バージョンのサーバを停止する。
postgres_install_1.png
postgres_install_2.png

停止したらPostgres.appは閉じる。

旧バージョンのPostgres.appの削除

ApplicationsフォルダのPostgres.appをゴミ箱に移動する。

旧バージョンのデータディレクトリ削除

ターミナルで以下のコマンドを実行し、旧バージョンのPostgreSQLのデータディレクトリを削除する。

$ rm -rf ~/Library/Application\ Support/Postgres
$ ls -ld ~/Library/Application\ Support/Postgres
ls: /Users/ngnmsn/Library/Application Support/Postgres: No such file or directory

旧バージョンの設定削除

ターミナルで以下のコマンドを実行し、旧バージョンのPostgreSQLの設定を削除する。

$ defaults delete com.postgresapp.Postgres2

旧バージョンの$PATHコマンドラインツールの構成削除

ターミナルで以下のコマンドを実行し、旧バージョンの$PATHコマンドラインツールの構成を削除する。

$ sudo rm /etc/paths.d/postgresapp

新バージョンのインストール

最新のメジャーアップデートのインストーラーをダウンロード

Postgres.appの公式サイトから最新のメジャーアップデートのインストーラーをダウンロード
Postgres.app公式のインストーラーダウンロードページ
postgres_download.png

Applicationsフォルダへのドラッグ&ドロップ

ダウンロードしたdmgファイルをダブルクリックし、インストールを開始する。
以下のウィンドウが表示されたら"Postgres.app"を"Applications"にドラッグ&ドロップ
postgres_15_install_1.png

「開く」をクリック

新しく配備されたApplicationsフォルダのPostgres.appを開くと以下のウィンドウが表示されるので、「開く」をクリック。
postgres_install_4.png

「Initialize」をクリック

新しいバージョンのPostgres.appが開かれるので、「Initialize」をクリックして初期化する。
postgres_install_5.png
初期化が完了するとサーバが起動する。
postgres_install_6.png

パスを通す。

付属のコマンドラインツールを使用できるようにするため、ターミナルで以下のコマンドを実行する。

$ sudo mkdir -p /etc/paths.d
$ echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

psqlによるバージョン確認

ターミナルで以下のコマンドを実行し、psqlのバージョンが15となっているか確認する。

$ psql --version
psql (PostgreSQL) 15.1

旧バージョンのバックアップデータの新バージョンへの移行

一時ディレクトリ移動

ターミナルで以下のコマンドを実行し、一時フォルダに移動する。
また先程のバックアップがあることを確認する。

$ cd /* 一時ディレクトリのパス */
$ ls -l
total 8
-rw-r--r--  1 xxxxxx  xxxxxx  1174  2  8 21:36 postgresapp.sql.gz

データ移行コマンドを実行

ターミナルで以下のコマンドを実行し、新バージョンのサーバにバックアップデータを移行する。

$ gunzip <postgresapp.sql.gz | psql

データが正常に移行されたか確認する。

psql等で確認してください。
データが正常に移行されていれば、以上となります。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?