programing

다른 데이터베이스 및 테이블에 일회성 쿼리 만들기

starjava 2023. 10. 29. 18:55
반응형

다른 데이터베이스 및 테이블에 일회성 쿼리 만들기

옆에 워드프레스 블로그 셀로트가 있는 레일스 앱이 있습니다(/blog에서 완전히 별도로).

고객이 레일즈 앱 메인 홈페이지의 최신 블로그 게시물을 원해서 워드프레스 데이터베이스에 일회적인 mysql 쿼리를 해야 합니다.레일 앱에서 이걸 어떻게 해야 할까요?워드 프레스는 데이터베이스 측면에서 레일과 완전히 분리되어 있습니다.

건배.

동일한 데이터베이스 자격 증명과 동일한 MySQL 서버를 사용하여 액세스할 수 있다고 가정하면 가장 쉬운 방법은 데이터베이스와 테이블을 지정하는 쿼리를 실행하는 것입니다.FROM쿼리의 절은 다음과 같습니다.

ActiveRecord::Base.connection.select_one(
    "SELECT * FROM blog_database.posts ORDER BY created_at DESC LIMIT 1")

select_one열 해시를 값으로 반환합니다.사용할 수 있는 방법에 대한 자세한 내용은connectionobject, 이 설명서 참조.

두 번째 옵션은 ActiveRecord의 하위 클래스를 생성하고 호출하는 것입니다.establish_connection:

class Blog < ActiveRecord::Base
  establish_connection :blog

  def self.most_recent_post
    connection.select_one("SELECT * FROM posts ...")
  end
end

당신은 또한 다음과 같이 할 필요가 있을 것입니다.blog당신의 데이터베이스 항목database.yml파일. 자세한 내용은 establish_connection을 참조하십시오. 유감스럽게도 이런 식으로 사용하는 것은 소스 코드를 봐야 알 수 있습니다.establish_connection.

그러면 다음과 같이 쿼리에서 블로그 데이터베이스 연결을 사용할 수 있습니다.

Blog.connection.select_one("SELECT * FROM posts ...")

이렇게 하면 좋은 점은 위에서 한 것처럼 (블로그 클래스에서) 데이터를 가져올 수 있는 방법을 정의할 수 있다는 것입니다.

Rails 2.x 또는 3.x에서는 이 두 가지 전략이 모두 잘 작동합니다.

언급URL : https://stackoverflow.com/questions/3958402/make-a-one-off-query-to-a-different-database-and-table

반응형