이 요구 사항을 구현하는 데는 몇 가지 방법이 있으며 가장 쉬운 방법은 config/database.yml
및 사용자 정의 네임 스페이스 모델을 사용하는 것입니다.
아래와 비슷한 이름을 지정하면 Rails.env
이라는 접미사를 사용하여 이름 지정 규칙을 따르면 약술 한 기능을 제공합니다.
먼저 기존 환경의 외부 데이터베이스에 대한 새 항목을 만듭니다. 그것은 당신이 기능을 테스트 할 수 있도록 도와 줄 것입니다.
# database.yml
development:
# add configuration as required
otherdb_development:
# add configuration as required
둘째, 당신은 otherdb
데이터베이스에 액세스하는 데 필요한 특정 테이블의 각 모델을 추가 할 수 있습니다. 나는 혼란과 잠재적 인 건드리지 방지하기 위해이 모델에 대한 네임 스페이스 디렉토리 (아래 예 otherdb
)를 추가하는 것이 좋습니다 것 : Otherdb::Foo
에
이
# /app/models/otherdb
class Otherdb::Foo < ActiveRecord::Base
establish_connection "otherdb_#{Rails.env}"
set_table_name "foo" # customize this if the table name will be different from the classname and is required
end
그런 다음 (예를 들어)를 사용할 수 있습니다 방법과 같은 결과 데이터를 사용 필수.
감사합니다. 시도해 보겠습니다. 관련 메모 : 내 개발, 테스트 및 프로덕션 데이터베이스는 모두 PostgreSQL이므로 'pg'보석을 실행하고 있습니다. 원격 MySQL 데이터베이스를 처리하기 위해 MySQL 관련 보석을 설치해야합니까? 이것들은 함께 "좋게"연주 할 수 있습니까? 아니면 약간의 갈등을 기대할 수 있습니까? – jasonmklug
맞습니다. 원격 데이터베이스가 다른 제품 인 경우 다른 어댑터를 사용해야합니다. – Sasha