如何使用rake db:dump:schema转储多个postgres模式

时间:2013-09-27 15:27:14

标签: ruby-on-rails ruby-on-rails-3 postgresql

我们的postgres数据库有两个模式:公共模式和元数据模式。我在测试数据库中需要两个模式,但rake db:schema:dump仅转储公共模式。如果我将schema_search_path: "public, metadata"添加到我的database.yml文件中,它会转储两个模式,但架构信息不存在。

如何将两个架构转储到db/schema.rb,以便我可以使用rake db:test:prepare加载它们?

1 个答案:

答案 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