最近、MySQL で既に実行されているアプリケーションに PostgreSQL を追加しました。現在、アプリケーションは 2 つのデータベースで実行されています。別のデータベースに存在するテーブルと正常に機能するテーブルとの関連付けを確立できました。今日、2 つのデータベースに存在するテーブルを使用するページに検索機能を追加し、エラーをスローしました。一日中バグを見つけようとしましたが、うまくいきませんでした。関連付け、コードを調べて、修正するのを手伝ってください。
私は4つのテーブルを持っています:-
会社(mysql)
場所(mysql)
レポート(PostgreSQL)
Report_category(PostgreSQL)
モデル - company.rb
establish_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
ビューから検索パラメーターを渡し、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 つのデータベースを使用して検索した場合にのみ、エラーが発生します。助けてください