Migración de Rails a MongoDB con Mongoid: Configuración Inicial

Clase 4 de 34Curso Intermedio de Ruby on Rails

Resumen

¿Cómo comenzar la migración de un proyecto de Rails hacia MongoDB?

Embarcarse en la tarea de migrar un proyecto de Rails de una base de datos SQL como PostgreSQL a un sistema NoSQL como MongoDB puede parecer desafiante. Sin embargo, con planificación y conocimiento adecuado, el proceso puede ser más fluido de lo que imaginas. Este artículo te guiará a través de los pasos iniciales para ajustar tu proyecto Rails e integrar MongoDB.

¿Qué pasos debemos seguir para eliminar incompatibilidades con PostgreSQL?

Lo primero que necesitamos es realizar modificaciones en la estructura del proyecto para eliminar las tecnologías y módulos que ya no serán necesarios, comenzando por aquellos que generan conflictos. Estos incluyen principalmente módulos relacionados con Active Record y Active Storage, que no son compatibles con MongoDB y su gestor de datos, Mongoid.

  1. Eliminar módulos no necesarios:

    • Dirígete al archivo application.rb en la carpeta config de tu proyecto. Allí, busca y comenta los módulos relacionados con Active Record y Active Storage. Esto incluye también Action Mailbox y Action Text, que dependen parcialmente de Active Record.
    # config.active_record.whatever = ...
    # config.active_storage.whatever = ...
    
  2. Eliminar configuraciones de Postgres:

    • Borra el archivo database.sample, ya que está preconfigurado para funcionar con PostgreSQL.
  3. Ajustar configuraciones de entornos:

    • Dentro del directorio de config/environments, ajusta los archivos development.rb, production.rb y test.rb. Comenta cualquier referencia a Active Record y Active Storage para garantizar que no generen conflictos.

¿Cómo ajustar las configuraciones del gestor MongoDB?

El siguiente paso crucial es preparar el sistema para trabajar con MongoDB mediante la integración de Mongoid en lugar de Active Record. La adaptabilidad y robustez de Mongoid facilitan este proceso, ya que actúa como un mapeador de documentos objeto.

  1. Configurar Mongoid:

    • En el archivo config/initializers, busca las líneas relacionadas con el ORM (Object-Relational Mapping) utilizado por Devise. Cambia las referencias de Active Record a Mongoid.
    # config.orm = :active_record
    config.orm = :mongoid
    
  2. Modificar el Gemfile:

    • Abre el Gemfile y elimina las gemas PG y annotate, ya que no son necesarias. Añade la gema mongoid, de preferencia usando la dirección al repositorio oficial en GitHub para mantenerse al día con las últimas actualizaciones estables.
    gem 'mongoid', github: "mongodb/mongoid", branch: 'master'
    

¿Cómo concluir los ajustes para utilizar Mongoid en Rails?

Finalmente, una vez configurados los archivos, debemos realizar los últimos pasos en la consola de comandos para consolidar los cambios realizados.

  1. Instalar nuevas dependencias:

    • En la consola, ejecuta el comando bundle install para instalar todas las nuevas dependencias del proyecto y eliminar aquellas que ya no son necesarias.
    bundle install
    

Siguiendo estos pasos, habrás completado la primera fase de la migración de tu aplicación hacia MongoDB. Este es solo el comienzo, y en futuros pasos, trabajarás en convertir los modelos de Active Record para que sean compatibles con Mongoid, permitiéndote aprovechar al máximo las capacidades de MongoDB. ¡Ánimo y sigue aprendiendo!