回答:
バックアップする--table
必要がpg_dump
あるテーブルを指定するために使用します。
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname
psql -U username -d database -1 -f your_dump.sql
--ignore-version
。Prashant Kumarの答えの方が簡単です。
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 -d <database_name> > file.sql
pg_dump -t <table_name> <database_name> > file.sql
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql
単一のテーブルのバックアップを取ることができますが、データベース全体のバックアップを取り、必要なテーブルを復元することをお勧めします。データベース全体をバックアップすることは常に良いことです。
max(id)
テーブルのから更新する方法を探しました。これがうまくいった答えであり、生成されたsqlを見ると、復元できたと確信しています。
グラフィカルユーザーインターフェイスが必要な場合は、pgAdmin III(Linux / Windows / OS X)を使用できます。選択するテーブルを右クリックして、「バックアップ」をクリックします。pg_dump
コマンドが作成されます。
フランク・ハイケンの回答への追加として、のINSERT
代わりにステートメントを使用したいcopy from stdin
場合は、--inserts
フラグを指定する必要があります
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
--ignore-version
フラグが廃止されたため、フラグを省略したことに注意してください。
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"
が、それは出てきました:pg_restore: [tar archiver] corrupt tar header found in --