LoginSignup
9
3

More than 3 years have passed since last update.

Railsのローカル開発環境でPostgreSQLのデータをダンプ&リストアしてみた

Last updated at Posted at 2019-04-04

環境

$ postgres --version
postgres (PostgreSQL) 10.5

$ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]

$ bin/rails -v
Rails 5.1.7

データベースのダンプ

pg_dumpコマンドで以下のようにダンプできます。

pg_dump データベース名 > バックアップファイル名

ローカル開発環境のデータベースをダンプしたい場合は、以下のようになります。

$ pg_dump hoge_development > hoge_development.txt

以上の例では、hoge_development.txtというファイルに標準出力しています。

データベースの削除

サーバーを起動している場合は、シャットダウンします。データベースに接続している場合は、遮断します。
以上が完了していれば、dropdbコマンドでデータベースを削除します。

$ dropdb hoge_development

データベースの作成

db:createでデータベースを作成します。ここでは、RAILS_ENV=developmentと開発環境を指定しています。
データベース作成後、念の為確認します。作成したデータベース名が表示されていればOKです。

$ bin/rails db:create RAILS_ENV=development
$ psql -l
                                   List of databases
        Name         | Owner | Encoding |   Collate   |    Ctype    | Access privileges
---------------------+-------+----------+-------------+-------------+-------------------
 hoge_development    | banri | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

リストア

psqlコマンドで以下のようにリストアできます。

psql データベース名 < バックアップファイル名

ダンプしたデータをローカル開発環境のデータベースにリストアしたい場合は、以下のようになります。

$ psql hoge_development < hoge_development.txt

bin/rails sでサーバーを起動し、データが復元されていたら無事リストア完了です。

9
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3