Links
Comment on page

Heroku Postgresの運用でよく使うコマンド集

すべて公式サイトに記載されている内容ですが、よく使うコマンドをすぐに参照できるように、一覧としてまとめます。

コマンド集

データベースのバックアップを保存する

% heroku pg:backups:capture --app your-app-name

データベースのバックアップ一覧を確認する

% heroku pg:backups --app your-app-name

データベースのバックアップをコマンドラインでローカル環境にダウンロードする

% heroku pg:backups:download --app your-app-name
特定のバックアップを指定してダウンロードしたい場合は、以下のようにバックアップID(bxxxと記載した部分)を指定します。
% heroku pg:backups:download bxxx --app your-app-name
※ここでダウンロードしたファイルは、次の節のようにpg_restoreコマンドでPostgreSQLに復元できます。

ダウンロードしたバックアップをローカルのPostgreSQLインスタンスに復元する

% pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
( 公式サイトの説明ページは、こちら
なお、homebrewでPostgreSQLをインストールした場合、PostgreSQLはkeg onlyなので、pg_restoreコマンドへのPATHが通っていない状態になっています。
その場合は、以下のように、ローカルで利用しているPostgreSQLの特定のバージョンのpg_restoreコマンドに対して、パスを通す必要があります。
% brew link postgres@xx
PostgreSQLのインスタンス自体は、Dockerの中で動作していてもpg_restoreコマンドを実行できます。その場合、コンテナ内のPostgreSQLが動作しているポートがローカルホストのポートにバインドされていなければなりません。
Docker内のPostgreSQLインスタンスに復元する場合でも、pg_restoreコマンドをホスト環境側(macOSのターミナルなど)で実行する場合は、ホスト環境にPostgreSQLをインストールして、pg_restoreコマンドを使えるようにしておく必要があります。
本サイトの更新情報は、Twitterの株式会社プレセナ・ストラテジック・パートナーズエンジニア公式アカウントで発信しています。ご確認ください。