最近、MySQLで既に動作していたアプリケーションにPostgreSQLを追加しました。私は異なるデータベースに存在するテーブルとそのうまくいっさいの間の関連付けを確立することができました。今日私は、2つのデータベースに存在するテーブルを使用するページに検索機能を追加し、エラーをスローしました。バグを見つけようと一日中過ごしましたが、成功しませんでした。団体を調べて、コードを修正してください。PGError:ERROR:relation "companies"が存在しません(postgresql、mysql、rails 3)
カンパニー(mysqlの)
場所(mysqlの)
報告書(PostgreSQLの)
Report_category(PostgreSQLの)
モデル - - 会社:
は、私は4つのテーブルを持っています。 rbestablish_connection Rails.env+"_postgres"
has_many :reports
establish_connection Rails.env
belongs_to :location
location.rb
has_many :companies
report.rb
establish_connection Rails.env
belongs_to :company
establish_connection Rails.env+"_postgres"
belongs_to :report_category
report_category.rbビューから今
establish_connection Rails.env+"_postgres"
has_many :report
iは、検索パラメータを渡すと、私のreports_controllerに私は
@reports = Report.where("companies.name like ? and report_category.name ?", params[:company], params[:category]).includes(:company, :report_category)
を書きます
この行を実行した後、私は
ActiveRecord::StatementInvalid: PGError: ERROR: relation "companies" does not exist
しかし
Company.where("location.name like ?", params[:location]).includes(:location)
または
Report.where("report_categories.name like ?", params[:category]).includes(:report_category)
作品完全に罰金以下のエラーを取得しています。私は2つのデータベースを使用して検索するとエラーが発生します。助けてください
どういうわけか私はレールが引数を分けて、あなたが全く同じクエリ内の2つの異なるDBMSシステムを使用していることを認識しており、それはポストグルだけにすべてを送信していることを認識しています。 postgresはmysqlの内容について全く何もしていないので、正当に「企業」テーブルがないと不平を言っています。 –
なぜあなたは、MySQLとPostgreSQLのいくつかのテーブルを持っています。あなたはその中のすべてを持っているはずです。 –
@ MarcBなので解決策はありませんか? –