Миграция базы данных Activerecord в Mongoid - PullRequest
5 голосов
/ 05 апреля 2011

Я новичок в программировании на Rails.Я думал о внедрении аутентификации devise и omniauth в обучающем Railscast .Поскольку я еще не знаю mongoid, я планировал начать с Activerecord.В конце концов я хочу использовать Mongoid, я думаю.

Как мне перейти с Activerecord на Mongoid?

Я просто хочу начать свой проект.Особенно, когда у меня мало пользователей, вероятно, будет достаточно Activerecord.Я никогда не делал этого раньше, так что, надеюсь, кто-нибудь скажет мне, будет ли такой подход гораздо больше проблем, чем стоит.Имеет ли смысл для меня сейчас уделять больше времени изучению монгоида?

Я с нетерпением жду, чтобы услышать от вас, ветеранов Rails.

Ответы [ 3 ]

5 голосов
/ 13 апреля 2011

Вы строите свои модели, контроллеры и просматриваете в точности используя mongoid, как и при использовании ActiveRecord, так что здесь нет особой разницы.Большая разница в том, как ваши данные на самом деле хранятся и извлекаются, что влияет на ваши модели, что напрямую влияет на ваш код.

База данных без схемы, такая как mongoDB, не может защитить вас, как MySQL, и нет простого способа выполнить миграцию с использованием Mongoid.

Если вы только начинаете, вам, вероятно, следуетиспользуйте ActiveRecord только потому, что большая часть информации зависит от того, используете ли вы ActiveRecord с реляционной базой данных.

Однако переход на mongo / mongoid определенно стоит любой ощутимой боли, но если вы не использовали реляционную базу данных и ActiveRecord, вы можете не оценить, насколько удивительными могут быть mongo / mongoid!

0 голосов
/ 12 мая 2015

... и не существует простого способа выполнить миграцию с использованием Mongoid.

Это не правда. На самом деле довольно просто создать миграции в Mongoid. Если вы хотите добавить столбец в таблицу базы данных, просто добавьте его как «поле» в начало класса Model, например:

class User
  include Mongoid::Document

  field :email, type: String
  field :phone, type: String
  field :reputation, type: Integer
end

Нет создания миграций, не разгребать базу данных. Просто добавьте / удалите поля по мере необходимости, перезапустите сервер, и все готово. Однако вам следует с осторожностью удалять поля, поскольку они могут нарушить ваш код там, где вы на них ссылались.

0 голосов
/ 06 апреля 2011

Я считаю, что ActiveRecord достаточно. И, пожалуйста, подумайте о тех маленьких драгоценных камнях / плагинах, которые удобны, но не способны работать с Mongoid. Учебники, скринкасты - подавляющее большинство из них основаны на ORM / Mysql по умолчанию.

Пока, думаю, просто не стоит тратить время на Mongoid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...