Open10
postgresqlバックアップ
postgresqlに接続するためにpsqlが必要。
普通に入れるとサーバーまでついてくるが、今回は不要でコマンドだけ叩けるようになりたい。
$ brew install libpq
接続したいpostgresqlの情報を取得する
supabase projectに移動
setting > db > connecting stringをコピペ
psql -h ホスト名 -p ポート番号 -U ロール名 -d データベース名
接続できればok
pythonでやってる人いた
バックアップ
psqlの部分をpg_dumpに変える
pg_dump -h ... -p ... > [filename]
エラー出た
pg_dump: error: server version: 15.1; pg_dump version: 14.7 (Homebrew)
pg_dump: error: aborting because of server version mismatch
環境汚れそうなのでdockerでやりましょう
$ brew uninstall libpq
ちゃんと動いてそう
docker run -v "$(pwd):/dump" -it .......
コマンド | 説明 |
---|---|
docker run | Docker コマンドを実行します。 |
-v "$(pwd):/dump" | カレントディレクトリ(pwd )をコンテナ内の /dump にマウントします。これにより、ローカルマシン上のバックアップファイルがコンテナ内に存在することになります。 |
-it | 互換性のある TTY(Teletype)を使用して、コンテナ内にインタラクティブに入ります。 |
--rm | コンテナが終了したときに自動的に削除されます。 |
--network host | ホストのネットワークを使用するよう指定します。これにより、コンテナ内から直接ホストの PostgreSQL に接続することができます。 |
postgres:${POSTGRES_VERSION} | 使用する PostgreSQL イメージのバージョンを指定します。${POSTGRES_VERSION} は環境変数として設定されています。 |
pg_dump | PostgreSQL のバックアップを作成するツールです。 |
-h ${POSTGRES_HOST} | 接続する PostgreSQL のホスト名または IP アドレスを指定します。${POSTGRES_HOST} は環境変数として設定されています。 |
-p ${POSTGRES_PORT} | 接続する PostgreSQL のポート番号を指定します。${POSTGRES_PORT} は環境変数として設定されています。 |
-U ${POSTGRES_USER} | 接続する PostgreSQL のユーザ名を指定します。${POSTGRES_USER} は環境変数として設定されています。 |
-d ${POSTGRES_DB} | 接続する PostgreSQL のDB名 |
-W | パスワードを入力 |
接続できなくなった。
Please make sure your database server is running at `db.
どこにあげるか?
gceの永久無料インスタンスが余ってるのでそこにすることに