メインコンテンツにスキップ

バックアップ

Prisma Postgres は、データバックアップのために、24 時間ごとにデータベースのフルスナップショットを作成します。データベースのバックアップにアクセスする必要がある場合は、Prisma Data Platform アカウントに関連付けられたメールアドレスからサポートチームにご連絡ください。これにより、アカウントを迅速に確認し、復元プロセスを迅速化できます。

最新のスナップショット以降に発生したデータベースの変更やイベントは復元されない可能性があることに注意してください。

将来的には、Prisma Postgres は、ユーザー固有の構成に基づいて、よりきめ細かいバックアップメカニズムと、特定の時点への復元機能を提供する予定です。

@prisma/ppg-tunnel を使用したバックアップファイルの作成

データベースのバックアップファイルを作成したい場合は、@prisma/ppg-tunnel CLI を使用できます。これは、データベース間でデータを移行したり、データベースのローカルコピーを作成したりするのに役立ちます。

前提条件

開始する前に、以下があることを確認してください

  • Node.js がインストールされていること(バージョン16以上)。
  • バックアップ作成のための**PostgreSQL CLIツール** (pg_dump)。Prisma Postgres はバージョン 17 に基づいているため、Postgres バージョン 17 を使用してください。
  • Prisma Postgres データベースの**データベース接続文字列**。

バックアップを作成するには、PostgreSQL コマンドラインツールがインストールされていることを確認してください。お使いのオペレーティングシステムに応じて、以下のコマンドを実行してください

brew install postgresql@17
which pg_dump
which pg_restore
ヒント

PostgreSQL をインストールしたにもかかわらず、pg_dump または pg_restore で「command not found」エラーが表示される場合は、インストールディレクトリがシステムの PATH 環境変数に含まれていることを確認してください。

注意

Postgresql バージョン 17 をインストールしていることを確認してください。他のバージョンでは、バックアッププロセス中にエラーが発生する可能性があります。

1. @prisma/ppg-tunnel を使用してデータベースに直接接続する

ターミナルで npx @prisma/ppg-tunnel を実行して、データベースへのセキュアなトンネルを確立します。

現在のディレクトリに DATABASE_URL が設定された .env ファイルがすでに存在する場合、トンネル CLI はそれを自動的に認識するため、手動でエクスポートする必要はありません。ただし、.env ファイルを設定していない場合は、DATABASE_URL 環境変数を明示的に設定する必要があります。

環境変数を設定するには(実際のデータベース URL を使用)

export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=eyJhbGciOiJIUzI..."
注意

ターミナルで DATABASE_URL を明示的に設定した場合、その値は .env ファイルの値よりも優先されます。

トンネルを実行

npx @prisma/ppg-tunnel --host 127.0.0.1  --port 5432

必要に応じて、他のポートを指定できます。ポート値が指定されていない場合は、ランダムなポートが割り当てられます。次のような出力が表示されるはずです

Prisma Postgres auth proxy listening on 127.0.0.1:5432 🚀

Your connection is authenticated using your Prisma Postgres API key.
...

==============================
hostname: 127.0.0.1
port: 5432
username: <anything>
password: <none>
==============================
注意

出力に表示されるポートは、ここに記載されているポートとは異なるランダムに割り当てられたポートであることに注意してください。また、トンネルをアクティブな状態に保つために、このターミナルウィンドウを開いたままにしてください!閉じると、トンネルは切断されます。

ターミナル出力からポート番号をコピーしてください。次のステップの pg_dump コマンドで必要になります。

2. pg_dump を使用したバックアップの作成

トンネルが実行されている状態で、次のコマンドを実行してデータベースをダンプできます

PGSSLMODE=disable \
pg_dump \
-h 127.0.0.1 \
-p 5432 \
-Fc \
-v \
-d postgres \
-f ./mydatabase.bak \
&& echo "-complete-"

PGSSLMODE=disable は、トンネルがすでに接続を暗号化しているため、ローカルでは SSL が不要であることを示します。

`-h` is the host (127.0.0.1)
`-p` is the port, which should match the one from the tunnel output.
`-Fc` uses the custom format for backups, recommended for pg_restore.
`-d` postgres is the default database name used in Prisma Postgres.
`-f` ./mydatabase.bak specifies the backup file name and location.
`-v` runs pg_dump in verbose mode.

これにより、現在のディレクトリに mydatabase.bak という名前のバックアップファイルが作成されるはずです。