我知道通过正常迁移我可以做 rename_table 但在 mongoid 中我完全不确定如何继续。
我已将所有模型/关系/路由/控制器/等全部重命名,但我只需要知道如何移动数据本身。
这是一个嵌入的 embeds_one 文档。
更新:
看起来就像简单地做:
Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }
作品。听起来很理智?
我知道通过正常迁移我可以做 rename_table 但在 mongoid 中我完全不确定如何继续。
我已将所有模型/关系/路由/控制器/等全部重命名,但我只需要知道如何移动数据本身。
这是一个嵌入的 embeds_one 文档。
更新:
看起来就像简单地做:
Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }
作品。听起来很理智?
对于重命名嵌入式文档,您可以像对待属性一样对待它们,并使用以下内容重命名它们:
ParentModel.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }
要重命名顶级模型,您需要访问 ruby 驱动程序本身并使用 #rename_collection 方法:
Mongoid.database.rename_collection "old_collection_name", "new_collection_name"
要查看旧集合名称,您可以执行以下操作:
Mongoid.database.collections.map {|c| c.name}
有几种方法可以重命名集合。我喜欢通过轻便摩托车(https://github.com/mongoid/moped/blob/master/lib/moped/collection.rb#L55)来做。
Mongoid.default_session[:old_name].rename(:new_name)
这对于查找集合名称也很方便。
OldModel.collection.name
根据您所说的和文档,您似乎应该这样做
Model.rename(:old_name, :new_name)