我想在heroku上的pgsql数据库中有两个模式(公共模式除外)。在本地,我将数据导入到公共模式并将其重命名为我选择的名称。以类似的方式,我在一个DB下创建了两个模式,并使用
search_schema_path: 'schema1, schema2'
现在我想在heroku上做同样的事情并尝试同样的程序。但看起来,rails无法从DB中找到表。我得到的错误关系“DelayDePosits”不存在。请建议我怎么做。
提前谢谢你的帮助。
最佳答案
当您的Rails应用程序部署在Heroku上时,自动生成的database.yml
覆盖写入您的应用程序database.yml
,这将删除您的schema_search_path
设置,并将其重置为public
。
可以添加在加载后重置值的初始值设定项。例如,config/initializers/postgres_schema.rb
:
ActiveRecord::Base.connection.schema_search_path = 'schema1, schema2'
在连接或重新设置的任何地方都需要小心设置。