ローカルの場合
■一度該当のデータベースを削除して入れ直さないとデータが二重になる
■データベースの削除の際はpsqlでログインしてから行う
1 |
DROP DATABASE rulixxx; |
■データベース作成もpsqlで行う
1 |
CREATE DATABASE ruliXXX; |
■dumpしたsqlのファイルがある場所にcdで移動して実行する
※リストアはpsqlではなく通常のコマンドで実行
データベースごとリストア
1 |
pg_restore -C -U postgres -d rulixxx rulixxx.sql |
テーブルのみリストア
1 |
pg_restore -C -U app_admin -d rulixxx -t test_xx test_xx.sql |
■以下のようなエラーが出るが無視
ld not execute query: ERROR: relation “pre_xx” already exists
上記エラーが出ても暫くすればエラーを無視しましたと表示され、リストア完了
■データベースごとリストアしても一部のテーブルだけがリストアできない場合は
テーブルだけを指定してリストア
1 |
pg_restore -C -U postgres -d rulixxx -t pre_xx rulixxx.sql |
■リストアが成功したかどうかは以下のコードで件数を確認
1 |
SELECT COUNT( * ) FROM all_xxxx; |
いくらリストアしても件数0と表示される場合dumpしたsqlファイルが
破損している可能性もあるので別のsqlファイルで実行してみる。
AWSの場合
■一度該当のデータベースを削除して入れ直さないとデータが二重になる
■データベースの削除の際はpsqlでログインしてから行う
1 |
DROP DATABASE rulixxx; |
■データベース作成もpsqlで行う
1 |
CREATE DATABASE ruliXXX; |
■dumpしたsqlのファイルがある場所にcdで移動して実行する
※リストアはpsqlではなく通常のコマンドで実行
データベースごとリストア
1 |
pg_restore -C -U app_admin -d rulixxx rulixxx.sqlて |
テーブルのみリストア
1 |
pg_restore -C -U app_admin -d rulixxx -t test_xx test_xx.sql |
■以下のようなエラーが出るが無視て待つ
ld not execute query: ERROR: relation “pre_xx” already exists
■上記エラーが出てからリストアまで時間がかかるので放置。
「pg_restore: 警告: リストア中に無視されたエラー数: 7」というメッセージで
リストア完了
■データベースごとリストアしても一部のテーブルだけがリストアできない場合は
テーブルだけを指定してリストア
1 |
pg_restore -C -U postgres -d rulixxx -t pre_xx rulixxx.sql |
■リストアが成功したかどうかは以下のコードで件数を確認
1 |
SELECT COUNT( * ) FROM all_xxxx; |
いくらリストアしても件数0と表示される場合dumpしたsqlファイルが
破損している可能性もあるので別のsqlファイルで実行してみる。
コメントを残す