Docs Menu
Docs Home
/ /

Agregar Mongoid a una aplicación existente

En esta guía, aprenderá a añadir Mongoid a una aplicación existente de Sinatra o Ruby on Rails (Rails). Para aprender a configurar una nueva aplicación que use Mongoid, consulte una de las siguientes guías:

  • Integrar Mongoid con Ruby on Rails

  • Inicio rápido - Sinatra

Para comenzar a utilizar Mongoid en una aplicación Sinatra existente, realice los siguientes pasos:

  1. Añade el mongoid dependencia de Gemfile de su aplicación.

  2. Cree un config/mongoid.yml archivo de configuración y especifique su destino de conexión, como se muestra en el paso Configurar su conexión MongoDB - Sinatra de la guía de inicio rápido.

  3. Cree un archivo de aplicación y cargue su archivo de configuración, como se muestra en el paso Ver datos de MongoDB - Sinatra de la guía de inicio rápido.

  4. Cree modelos Mongoid para interactuar con sus datos.

Puedes añadir Mongoid a una aplicación Rails existente para que se ejecute junto con otros adaptadores de Active Record. Para usar una combinación de adaptadores, puedes añadir la dependencia mongoid y completar el archivo de configuración con la información de tu conexión para empezar a usar MongoDB en tu aplicación.

Para adaptar una aplicación Rails existente para utilizar solo Mongoid en lugar de Active Record, debe realizar otros cambios de configuración, como se describe en las siguientes secciones.

Añade la gema mongoid al Gemfile ​​de tu aplicación:

Archivo de gemas
gem 'mongoid'

Para utilizar Mongoid como el único adaptador de base de datos, elimine o comente cualquier biblioteca RDBMS enumerada en,Gemfile sqlite como pg o.

Luego, instale las dependencias ejecutando el siguiente comando:

bundle install

Genere la configuración predeterminada de Mongoid ejecutando el siguiente comando:

bin/rails g mongoid:config

Este generador crea el archivo de configuración config/mongoid.yml que se utiliza para configurar la conexión a la implementación de MongoDB y el archivo inicializador config/initializers/mongoid.rb que puede utilizar para configurar otras opciones.

En el archivo config/mongoid.yml, especifique su cadena de conexión y otras opciones de conexión.

Abra el archivo config/application.rb y examine su contenido. Si el archivo usa la instrucción require "rails/all" para cargar todos los componentes de Rails, elimínela. Debe agregar una instrucción require independiente para cada componente de Rails, como se muestra en el siguiente archivo config/application.rb de ejemplo:

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

Nota

Debido a que dependen de Active Record, el Texto de acción Los adaptadores ActiveStorage y ActionMailbox no se pueden utilizar junto con Mongoid.

En config/application.rb y en otros archivos de configuración de su aplicación, elimine o comente cualquier referencia a config.active_record y config.active_storage.

Para migrar de Active Record a Mongoid, debes ajustar los modelos existentes de tu aplicación.

Los modelos de registro activo se derivan de la clase ApplicationRecord y no tienen definiciones de columnas, mientras que los modelos Mongoid generalmente no tienen superclase pero deben incluir el atributo Mongoid::Document.

Al crear modelos Mongoid, puede definir campos de las siguientes maneras:

Por ejemplo, un modelo básico de registro activo Post podría parecerse al siguiente:

aplicación/modelos/post.rb
class Post < ApplicationRecord
has_many :comments, dependent: :destroy
end

Un modelo Mongoid Post similar podría parecerse al siguiente:

aplicación/modelos/post.rb
class Post
include Mongoid::Document
field :title, type: String
field :body, type: String
has_many :comments, dependent: :destroy
end

En lugar de utilizar campos predefinidos, puede definir el modelo Post utilizando campos dinámicos, como se muestra en el siguiente código:

aplicación/modelos/post.rb
class Post
include Mongoid::Document
include Mongoid::Attributes::Dynamic
has_many :comments, dependent: :destroy
end

Si ya tiene datos en una base de datos relacional que desea migrar a MongoDB, debe realizar una migración de datos. No es necesario realizar una migración de esquema, ya que MongoDB no requiere un esquema predefinido para almacenar los datos.

Las herramientas de migración suelen ser específicas para los conjuntos de datos. Aunque Mongoid admite un superconjunto de asociaciones Active Record, las referencias de modelos se almacenan de forma diferente en las colecciones al utilizar Mongoid en comparación con Active Record.

Visite los siguientes recursos para obtener más información sobre cómo migrar de un RDBMS a MongoDB:

El proceso para crear una aplicación de la API de Rails que use Mongoid es prácticamente el mismo que para crear una aplicación normal. La única diferencia es que debe agregar el indicador --api al ejecutar rails new para crear la aplicación. La migración de una aplicación de la API de Rails a Mongoid sigue el mismo proceso descrito en las secciones anteriores.

Volver

Integraciones y herramientas

En esta página