[RUBY-ON-RAILS] 레일에 루비에 여러 데이터베이스에 연결
RUBY-ON-RAILS레일에 루비에 여러 데이터베이스에 연결
나는 레일 응용 프로그램 작업을 미세에 루비를 가지고 데이터베이스에 연결. 지금은 같은 응용 프로그램에서 다른 데이터베이스에 연결합니다. 데이터 모델은 동일 할 수있다. 사실 나는 응용 프로그램이 잘 작동 다른 데이터베이스에 연결합니다. 그러나 나는 두 개의 서로 다른 데이터베이스에 연결합니다. 그것은 루비 온 레일즈 수 있습니까?
해결법
-
==============================
1.여러 데이터베이스 연결의 경우 database.yml을 파일에 다음 코드를 추가해야합니다. 여기에, 나는 레일 응용 프로그램에서 두 개의 데이터베이스를 연결하는 예를 제공하고있다
여러 데이터베이스 연결의 경우 database.yml을 파일에 다음 코드를 추가해야합니다. 여기에, 나는 레일 응용 프로그램에서 두 개의 데이터베이스를 연결하는 예를 제공하고있다
설정 / database.yml을
development: adapter: mysql2 database: db1_dev username: root password: xyz host: localhost development_sec: adapter: mysql2 database: db2_dev username: root password: xyz host: localhost production: adapter: mysql2 database: db1_prod username: root password: xyz host: your-production-ip production_sec: adapter: mysql2 database: db2_prod username: root password: xyz host: your-production-ip
여기에는 개발 및 생산 환경에 대한 두 개의 데이터베이스를 사용하고 있습니다.
이제 우리는 데이터베이스에 모델을 연결해야합니다. 당신은 개발 및 생산 모드에서 응용 프로그램을 실행하는 경우, 모든 모델은 사람들이 당신의 database.yml 파일에 언급 된 개발 및 생산 DB 매개 변수를 통해 매핑됩니다. 일부 모델에 대한 그래서 우리는 다른 데이터베이스에 연결해야합니다.
그 가정하자, 우리는 두 가지 모델 사용자 및 종류가 있습니다. 사용자 테이블은 db1_dev 및 db1_prod, db2_dev 및 db2_prod의 범주 테이블에 있습니다.
카테고리 모델
class Category < ActiveRecord::Base establish_connection "#{Rails.env}_sec" end
두 번째 데이터베이스에 대한 새로운 마이그레이션을 추가 할 때 마찬가지로, 그것에 다음 코드를 추가해야합니다.
class CreateRewards < ActiveRecord::Migration def connection ActiveRecord::Base.establish_connection("#{Rails.env}_sec").connection end def change # your code goes here. end end
당신을 위해 작동합니다 희망 :).
-
==============================
2.다른 데이터베이스로 전환하려면 사용 establish_connection :
다른 데이터베이스로 전환하려면 사용 establish_connection :
ActiveRecord::Base.establish_connection( :adapter => "mysql", :host => "localhost", :username => "myuser", :password => "mypass", :database => "somedatabase" )
또한과 같이 database.yml을에서 사전 구성된 환경을 전달할 수 있습니다 :
ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations['other_env'])
또한 특정 모델에 설정할 수 있습니다 :
MyClass.establish_connection(...)
from https://stackoverflow.com/questions/17311199/connecting-to-multiple-databases-in-ruby-on-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 마이그레이션은 열 조합에 고유 제한 조건을 추가하는 (0) | 2020.02.18 |
---|---|
[RUBY-ON-RAILS] 루비 온 레일스와 함께 사용하기 위해 창에 포스트 그레스 설치 (0) | 2020.02.18 |
[RUBY-ON-RAILS] 왜 모든 레일 헬퍼 모두가, 모든 뷰에 사용할 수있는 시간인가? 이 해제하는 방법이 있나요? (0) | 2020.02.18 |
[RUBY-ON-RAILS] 속성이 변경되었을 경우 3 확인 레일 (0) | 2020.02.18 |
[RUBY-ON-RAILS] 어떻게 프로젝트에 레일 컨트롤러와 모델 이름을 바꾸려면 (0) | 2020.02.18 |