2012-07-10 3 views
8

私はnode.jsサーバーで作業しており、MongoDBとnode-mongo-nativeを使用しています。 Railsの移行に似た、dbの移行フレームワークを探しています。どんな勧告?node-mongo-native移行フレームワーク

+0

この回答を確認してください:http://stackoverflow.com/a/34271611/5589395 –

答えて

8

私はMongoDBの移行を行うための特定のネイティブNode.jsツールを認識していませんが、他の言語で書かれたツール(たとえば、Mongoid Rails Migrations)を使用するオプションがあります。

Schema designのアプローチとMongoDBのデータモデリングは、リレーショナルデータベースとは異なることに注意してください。特に、コレクションに一貫性のある、または事前宣言されたスキーマを持たせる必要はなく、列の追加や削除などの従来の移行操作の多くは不要です。

しかし、データ変換を伴う移行は依然として有効です。

アプリケーションでデータが特定の形式(たとえば、「名前」フィールドを「名」と「名字」に分割したい場合)が必要な場合は、他のプログラミング言語で書かれた移行ツールを使用してアピー​​ルされていない。彼らがそうであるように、アプリケーションのロジックで

  • ハンドルデータの違いを、とても古いものと新しいデータ形式は、新しい形式に一致するように、両方の許容可能な(おそらく「アップグレード」を記録しています更新されました)
  • 一度データを移行するためのスクリプトを書く
  • MongoDBヘルパーに貢献するnode-migrate
+0

ありがとうございました。これらのオプションは賢明に聞こえます。最も「ノード」的なソリューションのような音は、ノード・マイグレーション・ソリューションまたは自家製ソリューションを利用することです。 –

+0

node-migrateがうまく見えます: マングースを上下に使用できますか? また、dev、test、prodのデータベースでデータ変換を行う必要があります。 別の環境に対してこの移行スクリプトを実行する方法はありますか? – chovy

6

node-mongo-native:https://github.com/afloyd/mongo-migrateに基づいて基本的な移行フレームワークを作成しました。 &をマイグレーションして特定のリビジョン番号にアップ/ダウンすることができます。当初はノード・マイグレーションに基づいていましたが、明らかにそれを機能させるために少し変更する必要がありました。

改訂履歴はmongodbに保存され、node-migrateのようなファイルシステムには保存されないため、単一のデータベースを使用して同じプロジェクトでコラボレーションが可能です。そうしないと、移行を実行している各開発者がデータベースに対して移行を複数回実行する可能性があります。

移行自体はファイルベースであり、各開発者が同じデータベースを使用していない(または使用していない)単一のプロジェクトでのコラボレーションにも役立ちます。したがって、各開発者が移行を実行すると、そのデータベースに対して実行されていないすべての移行ファイルが実行されます。

詳細については、documentationをご覧ください。

関連する問題