Techioz Blog

mongodbで、Ruby on Rails「移行」ツールの使い方

概要

Ruby on Railsでは通常SQLiteをデータベースとして使用します。そのため、Migrationと呼ばれるRailsの特別なプロパティが機能します。しかし、Railsのデータベースとして「mongodb」を使用すると、dbディレクトリにMigrateフォルダーがないことがわかります。 mongodbを使用するときにレールでこの移行プロパティを使用する方法はありますか。

解決策

ここのドキュメントによると、 db:merge: は依存関係の目的でのみ存在しますが、実際には何も行いません。 ただし、使用している Rails のバージョン、プロジェクトがどのように設定されているか、そして mongodb のみを使用するつもりかどうかがわからないため、明確に記載されている場合はすべての前提条件を付けて、両方の可能性のプロセスを最初から説明します。

このアプローチは、mongodb を単独で使用することを前提としています。

モデル、足場などの Rails ジェネレーターは Mongoid によってオーバーライドされました。作成するモデルや足場などは、モデル フォルダー内の ApplicationRecord から継承するのではなく、Mongoid::Document モジュールを含むクラスを作成します。

たとえば、実行するとき

Rails G モデル person first_name last_name email_address

ファイル app/models/person.rb を開いた場合

わかるでしょう

class Person
  include Mongoid::Document
  field :first_name, type: String
  field :last_name, type: String
  field :email_address, type: String
end