5

通常の移行では rename_table を実行できることはわかっていますが、mongoid ではどうすればよいかまったくわかりません。

すべてのモデル/リレーション/ルート/コントローラーなどの名前を変更しましたが、データ自体を移動する方法を知る必要があります。

これは、埋め込まれたembeds_oneドキュメントです。

アップデート:

単純にやっているように見えます:

Model.all.each {|m| m.rename :old_embedded_association_name, :new_embedded_association_name }

動作します。正気ですか?

4

3 に答える 3

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}

于 2012-09-14T03:32:26.060 に答える
0

あなたが言ったこととドキュメントに基づいて、このようにする必要があるようです

Model.rename(:old_name, :new_name)
于 2012-07-03T04:35:34.717 に答える