1

非常に基本的な質問があります。Google を試しましたが、実際には何も見つかりません。

私はmongoose jsを試していますが、ライブアプリケーションをどのように更新するのか疑問に思っていました.

たとえば、node.js アプリケーションと app.js ファイルのどこかにスキーマを定義したとします。

...
var LibrarySchema = new mongoose.Schema({
    address: {type: String, required: true},
    books: [{
        title: {type: String, required: true}
    }]
});

var libraryModel = mongoose.model('Library', LibrarySchema);
...

これで、クラウド内のどこかにある AWS インスタンスでサーバーを実行しました。ユーザーはそこにいて、サイトを使用しています。ある時点で、すべての本に ISBN 番号を付けることにしたので、スキーマを更新する必要があります。

今私のオプションは何ですか?サーバー上の app.js ファイルを編集してからノード js アプリを再起動しますか? または、ダウンタイムを最小限に抑える方法で、運用中にスキーマを編集する方法はありますか?

ありがとう!!

4

2 に答える 2

0

Mongoose でスキーマを変更し、アプリケーションをリロードできます。サーバーのインスタンスが複数ある場合は、ユーザーの作業を中断することなく段階的に変更できます。ただし、新しいスキーマの扱いには注意が必要です。古いインスタンスは新しいアイテムについて何も知らないので問題ありませんが、新しいアイテムが存在しない場合は、新しいアイテムをチェックして状況に対処する必要があります。変更がごくわずかな場合は、移行後に適切なデフォルトでデータベースの欠落項目を満たすことをお勧めします。変更がより根本的な場合は、スキーマの異なるバージョンを同時に使用して、スキーマにバージョン識別子を含めることができます。

于 2013-07-10T09:56:10.503 に答える