バックアップ
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 コマンドラインツールがインストールされていることを確認してください。お使いのオペレーティングシステムに応じて、以下のコマンドを実行してください
- macOS
- Windows
- Linux
brew install postgresql@17
which pg_dump
which pg_restore
# Download from the official PostgreSQL website:
# https://www.postgresql.org/download/windows/
# During installation, select "Command Line Tools".
# Then verify with:
where pg_dump
where pg_restore
sudo apt-get update
sudo apt-get install postgresql-client-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
という名前のバックアップファイルが作成されるはずです。