課題
- 既存の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構造をもとに実行できるようになる