Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将Activerecord数据库迁移到Mongoid_Ruby On Rails_Activerecord_Mongodb_Migration_Mongoid - Fatal编程技术网

Ruby on rails 将Activerecord数据库迁移到Mongoid

Ruby on rails 将Activerecord数据库迁移到Mongoid,ruby-on-rails,activerecord,mongodb,migration,mongoid,Ruby On Rails,Activerecord,Mongodb,Migration,Mongoid,我是Rails编程新手。我正在考虑实施Desive和omniauth身份验证。因为我还不知道mongoid,所以我打算从Activerecord开始。我想最终我会使用Mongoid 如何从Activerecord迁移到Mongoid 我只想开始我的项目。特别是当我的用户很少时,Activerecord可能就足够了。我以前从未这样做过,所以希望有人能告诉我这种方法是否会比它的价值更麻烦。现在花更多时间学习mongoid对我来说更有意义吗 我期待着收到Rails老兵们的来信。我相信ActiveRec

我是Rails编程新手。我正在考虑实施Desive和omniauth身份验证。因为我还不知道mongoid,所以我打算从Activerecord开始。我想最终我会使用Mongoid

如何从Activerecord迁移到Mongoid

我只想开始我的项目。特别是当我的用户很少时,Activerecord可能就足够了。我以前从未这样做过,所以希望有人能告诉我这种方法是否会比它的价值更麻烦。现在花更多时间学习mongoid对我来说更有意义吗


我期待着收到Rails老兵们的来信。

我相信ActiveRecord已经足够了。请考虑一下那些小的gem/插件,它们很方便,但不能与Mongoid一起使用。教程、屏幕广播——绝大多数都基于默认的ORM/Mysql


现在,我认为花时间在Mongoid上是不值得的。

您使用Mongoid构建模型、控制器和视图,就像使用ActiveRecord一样,所以没有什么区别。最大的区别在于数据的实际存储和检索方式,这会影响模型,直接影响代码

像mongoDB这样的无模式数据库不能像MySQL那样保护您,而且使用Mongoid进行迁移没有简单的方法

如果您刚开始使用ActiveRecord,您可能应该使用ActiveRecord,因为很多信息都依赖于您将ActiveRecord与关系数据库一起使用

然而,切换到mongo/mongoid绝对值得任何痛苦,但除非您使用了关系数据库和ActiveRecord,否则您可能不会欣赏mongo/mongoid有多棒

…使用Mongoid进行迁移没有简单的方法

这不是真的。在Mongoid中创建迁移实际上非常简单。如果要向数据库表中添加列,只需将其作为“字段”添加到模型类的顶部,如下所示:

class User
  include Mongoid::Document

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

不创建迁移,不清理数据库。只要根据需要添加/删除字段,重新启动服务器,就可以了。但是,您应该小心删除字段,因为它们可能会破坏您引用它们的代码。

谢谢您的建议。我想我现在可能会选择ActiveRecord模型。在您看来,Mongo的一些优势是什么?解耦模型、OO数据存储和缺少迁移。我强烈认为缺少迁移不是一个好处。下周我的工作将从Mongodb转到Postgres。试着在谷歌上搜索“mongodb vs postgres”,并仔细阅读这些结果。我正在整理一篇关于它的博客文章,但还没有完成。yetI想补充一点,删除、重命名、更改类型或拥有一些值依赖于其他字段的字段都是迁移成为绝对必要的情况,其中Mongodb/Mongoid没有迁移是一个明显的缺点,因为这意味着您必须(a)以自定义方式执行这些操作,或者(b)处理非规范化数据库(旧数据结构仍然具有旧字段)。在许多情况下,这会使Mongoid在反序列化字段时失败,这绝对不是您想要的。