Docs Menu
Docs Home
/ /

기존 애플리케이션에 Mongoid 추가

이 가이드 에서는 기존 Sinatra 또는 Ruby on Rails(Rails) 애플리케이션 에 Mongoid를 추가하는 방법을 학습 수 있습니다. Mongoid를 사용하는 새 애플리케이션 설정하다 하는 방법을 학습 다음 가이드 중 하나를 참조하세요.

  • 빠른 시작 - Ruby on Rails

  • 빠른 시작 - Sinatra

기존 Sinatra 애플리케이션 에서 Mongoid를 사용하려면 다음 단계를 수행하세요.

  1. 애플리케이션의 Gemfilemongoid 종속성을 추가합니다.

  2. 빠른 시작 가이드의 MongoDB 연결 구성 - Sinatra 단계에 표시된 대로 config/mongoid.yml 구성 파일 만들고 연결 대상을 지정합니다.

  3. 빠른 시작 가이드의 MongoDB 데이터 보기-Sinatra 단계에 표시된 대로 애플리케이션 파일 만들고 구성 파일 로드합니다.

  4. 데이터와 상호 작용 Mongoid 모델을 만듭니다.

기존 Rails 애플리케이션 에 Mongoid를 추가하여 다른 Active Record 어댑터와 함께 실행 수 있습니다. 어댑터 조합을 사용하려면 mongoid 종속성을 추가하고 구성 파일 연결 정보로 채워 애플리케이션 에서 MongoDB 사용을 시작할 수 있습니다.

Active Record 대신 Mongoid만 사용하도록 기존 Rails 애플리케이션 조정하려면 다음 섹션에 설명된 대로 다른 구성을 변경해야 합니다.

애플리케이션의 Gemfilemongoid gem을 추가합니다.

Gemfile
gem 'mongoid'

Mongoid를 유일한 데이터베이스 어댑터로 사용하려면 에 나열된 모든 RDBMS 라이브러리(예: 또는)를 제거 하거나 주석 Gemfile sqlite pg처리합니다.

그런 다음, 다음 명령을 실행 하여 종속성을 설치합니다.

bundle install

다음 명령을 실행 하여 기본값 Mongoid 구성을 생성합니다.

bin/rails g mongoid:config

이 생성기는 MongoDB deployment 에 대한 연결을 구성하는 데 사용되는 config/mongoid.yml 구성 파일 과 다른 옵션을 설정하다 데 사용할 수 있는 config/initializers/mongoid.rb 이니셜라이저 파일 생성합니다.

config/mongoid.yml 파일 에서 연결 문자열 및 기타 연결 옵션을 지정합니다.

config/application.rb 파일 열고 내용을 검사합니다. 파일 이 require "rails/all" 성명서 사용하여 모든 Rails 구성 요소를 로드하는 경우 이 성명서 삭제 . 다음 샘플 config/application.rb 파일 에 표시된 대로 각 Rails 구성 요소에 대해 별도의 require 성명서 추가해야 합니다.

config/application.rb
# Remove or comment out rails/all
#require "rails/all"
# Add the following instead of rails/all:
require "rails"
# Comment out unneeded frameworks
# require "active_record/railtie" rescue LoadError
# require "active_storage/engine" rescue LoadError
require "action_controller/railtie" rescue LoadError
require "action_view/railtie" rescue LoadError
require "action_mailer/railtie" rescue LoadError
require "active_job/railtie" rescue LoadError
require "action_cable/engine" rescue LoadError
# require "action_mailbox/engine" rescue LoadError
# require "action_text/engine" rescue LoadError
require "rails/test_unit/railtie" rescue LoadError

참고

이 어댑터는 Active Record에 의존하기 때문에 ActionText, ActiveStorageActionMailbox 어댑터는 Mongoid와 함께 사용할 수 없습니다.

config/application.rb 및 애플리케이션의 다른 구성 파일에서 config.active_recordconfig.active_storage에 대한 참조를 모두 제거 하거나 주석 처리합니다.

Active Record에서 Mongoid로 마이그레이션 하려면 애플리케이션의 기존 모델을 조정해야 합니다.

Active Record 모델은 ApplicationRecord 클래스에서 파생되며 열 정의가 없는 반면, Mongoid 모델은 일반적으로 슈퍼클래스가 없지만 Mongoid::Document 속성을 포함해야 합니다.

Mongoid 모델을 생성할 때 다음과 같은 방법으로 필드를 정의할 수 있습니다.

예시 들어 기본 Active Record Post 모델은 다음과 유사할 수 있습니다.

app/models/post.rb
class Post < ApplicationRecord
has_many :comments, dependent: :destroy
end

유사한 Mongoid Post 모델은 다음과 유사할 수 있습니다.

app/models/post.rb
class Post
include Mongoid::Document
field :title, type: String
field :body, type: String
has_many :comments, dependent: :destroy
end

사전 정의된 필드를 사용하는 대신 다음 코드와 같이 동적 필드를 사용하여 Post 모델을 정의할 수 있습니다.

app/models/post.rb
class Post
include Mongoid::Document
include Mongoid::Attributes::Dynamic
has_many :comments, dependent: :destroy
end

관계형 데이터베이스 에 이미 MongoDB 로 이동하려는 데이터가 있는 경우 데이터 마이그레이션 수행해야 합니다. MongoDB 데이터를 저장 위해 사전 정의된 스키마 필요하지 않으므로 스키마 마이그레이션 수행할 필요가 없습니다.

마이그레이션 도구는 종종 데이터 세트에만 적용됩니다. Mongoid는 Active Record 연관 관계의 상위 집합을 지원하지만, Active Record와 비교하여 Mongoid를 사용할 때 모델 참조는 컬렉션에 다르게 저장됩니다.

RDBMS 에서 MongoDB 로 마이그레이션하는 방법에 대해 자세히 학습 다음 리소스를 방문하세요.

Mongoid를 사용하는 Rails API 애플리케이션 만드는 프로세스 일반 애플리케이션 만드는 프로세스와 거의 동일합니다. 유일한 차이점은 애플리케이션 생성하기 위해 rails new 를 실행 때 --api 플래그를 추가해야 한다는 것입니다. Rails API 애플리케이션 Mongoid로 마이그레이션하는 작업은 이전 섹션에서 설명한 것과 동일한 프로세스 따릅니다.

돌아가기

통합 및 도구

이 페이지의 내용