Postgresを使用してデータベース内に単一のテーブルのバックアップを作成する方法はありますか?そしてどうやって?これはpg_dumpコマンドでも機能しますか?
--table
を使用して、pg_dump
にバックアップするテーブルを指示します。
pg_dump --Host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname
Ubuntuを使用している場合、
Sudo su postgres
にログインしますpg_dump -d <database_name> -t <table_name> > file.sql
postgres
ユーザーに書き込み権限があるコマンドを実行していることを確認してください(例:/tmp
)
編集
.sqlを別のコンピューターにダンプする場合は、.sqlファイルに保存される所有者情報をスキップすることを検討する必要があります。
pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
を使用できます
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql
単一のテーブルのバックアップを取ることができますが、データベース全体のバックアップを取り、必要なテーブルを復元することをお勧めします。データベース全体のバックアップを作成しておくことは常に良いことです。
フランクハイケンの答えに加えて、copy from stdin
の代わりにINSERT
ステートメントを使用する場合は、--inserts
フラグを指定する必要があります。
pg_dump --Host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
--ignore-version
フラグは廃止されたため、省略したことに注意してください。