1. ホーム
  2. postgresql

[解決済み] PostgreSQLでデータベースのコピーを作成する

2022-03-20 07:53:25

質問

pgAdminでデータベース全体(その構造とデータ)を新しいものにコピーする正しい方法は何ですか?

どのように解決するのですか?

Postgresでは、新しいデータベースを作成する際に、サーバ上の任意の既存データベースをテンプレートとして使用することができます。pgAdminがデータベースの作成ダイアログでそのオプションを提供するかどうかは分かりませんが、もし提供しないのであれば、クエリウィンドウで以下のように実行することができるはずです。

CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;

それでも、得ることができるかもしれません。

ERROR:  source database "originaldb" is being accessed by other users

他のすべてのユーザーをデータベースから切断するには、次のクエリーを使用します。

SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity 
WHERE pg_stat_activity.datname = 'originaldb' AND pid <> pg_backend_pid();