用mongoid重命名模型

eag*_*poo 5 ruby ruby-on-rails mongoid

我知道正常的迁移我可以做rename_table但是在mongoid我不能确定如何继续.

我已将所有模型/关系/路由/控制器/等都重命名,但我只需要知道如何移动数据本身.

这是嵌入式embeds_one文件btw.

更新:

看起来简单地做:

Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }
Run Code Online (Sandbox Code Playgroud)

作品.听起来很健康吗?

eag*_*poo 1

对于重命名嵌入文档,您可以像对待属性一样对待它们,并使用如下内容重命名它们:

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}

  • NoMethodError:Mongoid:Module 的未定义方法“数据库” (2认同)