1. ホーム
  2. mongodb

Mongoose でのスキーマ変更への対応

2023-09-16 15:25:56

質問

アプリケーションの進化に合わせて Mongoose スキーマを更新・移行するためのベストプラクティス (またはツール) は何ですか?

どのように解決するのですか?

更新しました。 テストしたところ、これは現在の形では動作しません。正しいアイデアがあり、モジュール自体をかなり調整することで単一のマイグレーションを動作させることができました。しかし、いくつかの大きな変更と、何らかの方法で異なるスキーマを追跡することなしに、意図したとおりに動作するとは思えません。


mongoose-data-migrationsが必要なようですね。

これは古いスキーマバージョンのドキュメントを使用しながら移行するためのもので、mongodbでの移行を扱うのに最も適した方法と思われます。

サーバに大きな負荷がかかり、アプリケーションやサーバのダウンタイムが発生する可能性があるため、ドキュメントコレクション上で完全なデータセット移行(alter table)を実行したいとは思わないでしょう。時には、新しいスキーマや変更を適用するすべてのドキュメントを単純に取得し、保存を呼び出すスクリプトを書く必要があるかもしれませんが、いつ、どこでそれを行うべきかを理解する必要があります。たとえば、doc init に移行ロジックを追加すると、移行スクリプトを実行するためにサーバーを 3 時間ダウンさせる価値があるよりも、パフォーマンスに大きな打撃を与えることがあります。

私はこれを見つけました。 リンク はかなり役に立ちました。基本的に、より詳細に上記を繰り返し、本質的に上記のノードパッケージのコンセプトをPHPで実装しています。

N.B. モジュールは5ヶ月古く、0フォークです。しかし、私は周りを見ていて、abdelsaidのスタイルの応答より良い/より役立つものを見つけることができません。