0

オブジェクトを表すデータベース ビューを生成するために rails_sql_views gem を必要とする CITIER gem を使用している複数テーブルの継承を必要とする Rails アプリがあります。

ここまでは順調ですね。これはすべて、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

これは、その gem を使用した sqlite3 と postgres アダプター間の非互換性のようです。開発をできる限り本番環境に近づけるようにしてください。postgress をローカルにインストールしてみてくださいhttps://devcenter.heroku.com/articles/local-postgresqlローカルで同じエラーが発生するかどうかを確認してください。その場合は、詳細なバグ レポートを作成して Gem の作成者に送信するか、自分で修正してプル リクエストを送信することを検討してください。

于 2012-05-23T15:31:14.893 に答える