Edited at

PostgreSQLを使ってDBのバックアップ&リストア

More than 3 years have passed since last update.


目的



  • seedなどを使ってマスタを構築するのだが、そのseedが正しく動くかを確認するために、以下の作業を繰り返したい


    1. DBのダンプ

    2. seedスクリプト、データの登録

    3. データの確認

    4. DBのリストア

    5. スクリプト、データの修正(2に戻る)



  • ダンプ、リストアの手順をまとめる


  • また、テーブルのみの場合の手順も一緒にまとめておく



手順(フル)



  • ダンプ

    $ PGPASSWORD=password pg_dump -U user -d database > ~/dump/dumpfile.sql
    



  • リストア

    $ # database削除
    
    $ PGPASSWORD=password dropdb -U user database
    $ # database作成
    $ PGPASSWORD=password createdb -U user database
    $ # リストア
    $ PGPASSWORD=password psql -U user database < ~/dump/dumpfile.sql



手順(テーブルのみ)



  • テーブルのみダンプ

    $ PGPASSWORD=password pg_dump -U user -d database -t table > ~/dump/tablefile.sql
    



  • テーブルのみリストア

    SQL> # table削除
    
    SQL> DROP TABLE `table_name`

    $ # リストア
    
    $ PGPASSWORD=password psql -U user database < ~/dump/tablefile.sql



注意


  • 当然ですが、スキーマが変わってると、Rails等のmigrateの状態がおかしくなるので、気をつけましょう。