環境
$ 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
でサーバーを起動し、データが復元されていたら無事リストア完了です。