0

我有一个需要多表继承的 Rails 应用程序,我正在使用 CITIER gem,它本身需要 rails_sql_views gem 来生成表示对象的数据库视图。

到现在为止还挺好。所有这一切都像我使用 sqlite3 的本地机器上的魅力一样。但是,当我尝试将应用程序部署到 Heroku 时,我既无法执行数据库迁移,也无法访问 rails 控制台。

原因似乎是 rails_sql_views gem 试图访问一些声称不存在的 PostgreSQLAdapter 方法。但是,当我检查 rails 存储库的文件时,我可以在代码中找到这些方法。这里发生了什么?

当我尝试运行“heroku run rake db:migrate”时,我会得到以下错误跟踪:

Running rake db:migrate --trace attached to terminal... up, run.1 rake aborted!
undefined method `tables' for class `ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/core_ext/module/aliasing.rb:31:in `alias_method'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/core_ext/module/aliasing.rb:31:in `alias_method_chain'
/app/vendor/bundle/ruby/1.9.1/gems/rails_sql_views-0.8.0/lib/rails_sql_views/connection_adapters/postgresql_adapter.rb:5:in `included'
/app/vendor/bundle/ruby/1.9.1/gems/rails_sql_views-0.8.0/lib/rails_sql_views/loader.rb:12:in `include'
[....]
4

1 回答 1

0

这看起来像是 sqlite3 和 postgres 适配器与该 gem 之间的不兼容。您应该尝试使开发尽可能接近生产。尝试在本地安装 postgress https://devcenter.heroku.com/articles/local-postgresql并查看是否在本地遇到相同的错误。如果这样做,请考虑编写详细的错误报告并将其发送给 Gem 的作者,或者尝试自己修复它并发送拉取请求。

于 2012-05-23T15:31:14.893 回答