我们的postgres数据库有两个模式:公共模式和元数据模式。我在测试数据库中需要两个模式,但rake db:schema:dump
仅转储公共模式。如果我将schema_search_path: "public, metadata"
添加到我的database.yml文件中,它会转储两个模式,但架构信息不存在。
如何将两个架构转储到db/schema.rb
,以便我可以使用rake db:test:prepare
加载它们?
答案 0 :(得分:2)
在我看来,答案是使用结构文件而不是模式文件。
将此添加到application.rb
# use a .sql structure instead of a schema.rb for the schema
config.active_record.schema_format = :sql
删除您的schema.rb文件
现在将使用schema(sb)intead schema(rb)转储数据库,它可以更具表现力。但是,它现在与您的数据库供应商联系在一起(对我们来说不是什么大问题)。
bundle exec rake db:test:prepare