Menu Docs
Página inicial do Docs
/ /

Adicionar Mongoid a um aplicativo existente

Neste guia, você pode aprender como adicionar Mongoid a um aplicação Sinatra ou Ruby on Rails (Rails) existente. Para saber como configurar um novo aplicação que usa o Mongoid, consulte um dos seguintes guias:

  • Início rápido - Ruby on Rails

  • Início rápido - Sinatra

Para começar a usar o Mongoid em um aplicação Sinatra existente, execute as seguintes etapas:

  1. Adicione a dependência mongoid ao Gemfile do seu aplicativo.

  2. Crie um arquivo de configuração config/mongoid.yml e especifique seu destino de conexão, como mostrado na etapa Configurar sua conexão MongoDB - Sinatra do guia Início Rápido.

  3. Crie um arquivo do aplicação e carregue seu arquivo de configuração, conforme mostrado na etapa Visualizar Dados MongoDB - Sinatra do guia Início Rápido.

  4. Crie modelos Mongoid para interagir com seus dados.

Você pode adicionar o Mongoid a um aplicação Rails existente para ser executado junto com outros adaptadores do Active Record. Para usar uma combinação de adaptadores, você pode adicionar a dependência mongoid e preencher o arquivo de configuração com suas informações de conexão para começar a usar o MongoDB em seu aplicação.

Para adaptar um aplicação Rails existente para usar apenas Mongoid em vez do Active Record, você deve fazer outras alterações de configuração, conforme descrito nas seções a seguir.

Adicione o gem mongoid ao Gemfile do seu aplicativo:

Gemfile
gem 'mongoid'

Para usar o Mongoid como o único adaptador de banco de dados , remova ou comente quaisquer bibliotecas RDBMS listadas Gemfile no, como sqlite pgou.

Em seguida, instale as dependências executando o seguinte comando:

bundle install

Gere a configuração Mongoide padrão executando o seguinte comando:

bin/rails g mongoid:config

Este gerador cria o arquivo de configuração config/mongoid.yml utilizado para configurar a conexão com a implantação do MongoDB e o arquivo inicializador config/initializers/mongoid.rb que você pode utilizar para configurar outras opções.

No arquivo config/mongoid.yml, especifique sua string de conexão e outras opções de conexão.

Abra o arquivo config/application.rb e examine o conteúdo. Se o arquivo usar a instrução require "rails/all" para carregar todos os componentes do Rails, exclua esta instrução. Você deve adicionar uma instrução require separada para cada componente Rails, como mostrado no seguinte arquivo de amostra config/application.rb:

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

Observação

Como dependem do Active Record, os adaptadores ActionText, ActiveStorage e ActionMailbox não podem ser usados junto com o Mongoid.

Em config/application.rb e nos outros arquivos de configuração do seu aplicativo, remova ou comente quaisquer referências a config.active_record e config.active_storage.

Para migrar do uso do Active Record para o Mongoid, você deve ajustar os modelos existentes do seu aplicativo.

Os modelos Active Record derivam da classe ApplicationRecord e não têm definições de coluna, enquanto os modelos Mongoid geralmente não têm superclasse, mas devem incluir o atributo Mongoid::Document.

Ao criar modelos Mongoid, você pode definir campos das seguintes maneiras:

Por exemplo, um modelo básico do Active Record Post pode se assemelhar ao seguinte:

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

Um modelo Mongoide Post semelhante pode se assemelhar ao seguinte:

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

Em vez de utilizar campos predefinidos, você pode definir o modelo Post utilizando campos dinâmicos, como mostrado no seguinte código:

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

Se você já tiver dados em um banco de dados relacional que deseja mover para o MongoDB, deverá executar uma migração de dados. Você não precisa realizar a migração de esquema porque o MongoDB não exige um esquema predefinido para armazenar os dados.

As ferramentas de migração geralmente são específicas para conjuntos de dados. Embora o Mongoid ofereça suporte a um superconjunto de associações do Active Record, as referências do modelo são armazenadas de forma diferente nas collections ao usar o Mongoid em comparação com o Active Record.

Visite os seguintes recursos para saber mais sobre como migrar de um RDBMS para MongoDB:

O processo para criar um aplicação de API Rails que use Mongoid é quase o mesmo usado para criar um aplicação normal. A única diferença é que você deve adicionar o sinalizador --api ao executar o rails new para criar o aplicação. A migração de um aplicação da API Rails para o Mongoid segue o mesmo processo descrito nas seções anteriores.

Voltar

Integrações e ferramentas

Nesta página