LoginSignup
2
2

More than 5 years have passed since last update.

pg_dumpの結果をrspecで読み込むスキーマとする

Last updated at Posted at 2015-10-30

課題

  • 既存のPostgreSQLのDBがある
  • db/schema.rbがないとrspecを動かす時にテーブルが作られない
  • rake db:schema:dumpではコメントやview定義などがdumpされない

対応

スキーマフォーマットの変更

通常はrubyのdslで書かれたschema.rbを読み込むが、下記のような設定をすることでpg_dumpで出力したsqlをスキーマとして利用でる

config/appliction.rb
  config.active_record.schema_format = :sql

pg_dumpでの出力

rake db:structure:dumpで吐かれるのと同じファイル名でpg_dumpの結果を置く。

$ pg_dump --schema-only database_name > db/structure.sql

マスターデータも追加しておく(optional)

もし利用したいマスターデータがある場合は db/structure.sql に追記しておく

$ pg_dump -a -t some_master_table -t other_master_table >> db/structure.sql 

完了!

こうすることでrspecが既存のDB構造をもとに実行できるようになる

2
2
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
2
2