MongooseによるNESTJSのためのMongoDB移行システムの構築
9999 ワード
このチュートリアルは次のようなものです. あなたは、NESTプロジェクトを持っています あなたはMongoDBとマングースを使用している 最近、私は私の不条理ゲームのリファクタリングのビットを行う衝動を持っていた.
それでも、仕事は進行中です、しかし、私は家が家と名付けられたという事実をもはや耐えませんでした..
私はすでにあなたを聞くことができる、'ちょうどラベルを1つの注意を表示変更!
私は、私のコードベースでネーミングの一貫性について気にかけます.家が家であるならば、あなたが知っている次のものは以下です:
カノンは木の剣になり、オオカミは犬です.
私はいくつかの時間のオンラインソリューションを探して過ごし、私は最終的に私が好きなものを構築しました.
私の仕事の結果をあなたにお見せしましょう.
私は、使用することを選びました
十分に私について話す、私はこの旅をご案内しましょう.
インストールに行く悪い男!
新しい2つのフォルダがあります.
秒を調べましょう.
導入では、migrateはデータベース不可知論者であるとあなたに言いました.
したがって、少しMongoDBコネクタを書く必要があります.
migrateはJavaScriptで作られたツールです.
そして、私たちはtypescriptを使用して、最善のことは、データベースが既に接続された小さなテンプレートを持っています.
この小さなヘルパーは、私の蒸散エラーを解決!
同じことを!さあ!そうする!
あなたが更新する時間です
この甘い線を加えてください
また、それを好きなようにブートストラップを移動する簡単な方法を提供します!
デフォルトでは、プロジェクトのルートにあります.
さて、このコマンドを実行するだけで、正しいフォルダに空のtypescriptマイグレーションファイルを作成する必要があります!
Aaaaaaa 2つのより多くの線
アップデートスクリプトを実行するには、次の手順に従います.
migrateはプロジェクトのルートでファイルの移行状態を保存します.
このファイルは
次のようになります.
私はコメントで質問に答えてうれしいです.
あなたが私の不協和音が好きであるならば、私のコーディング和音に加わることを考えてください!
☎️ Webeleon coding lair on discord
また、私にメールすることができますし、契約を提供する💰
✉️ Email me!
そして、私は素敵な男だから、ここでは、ワーキングサンプルを含んでいるこのサンプルレポを取る!
🎁 Get the code of the tuto from github
NestJS Install mongoose with nest Migrate
それでも、仕事は進行中です、しかし、私は家が家と名付けられたという事実をもはや耐えませんでした..
私はすでにあなたを聞くことができる、'ちょうどラベルを1つの注意を表示変更!
私は、私のコードベースでネーミングの一貫性について気にかけます.家が家であるならば、あなたが知っている次のものは以下です:
カノンは木の剣になり、オオカミは犬です.
私はいくつかの時間のオンラインソリューションを探して過ごし、私は最終的に私が好きなものを構築しました.
私の仕事の結果をあなたにお見せしましょう.
私は、使用することを選びました
migrate
ライブラリは、データベースagnostic以来、簡単にアップ/ダウンロジックを提供し、任意のフォームに移行ステータスを格納することができます.十分に私について話す、私はこの旅をご案内しましょう.
インストールマイグレーション
インストールに行く悪い男!
npm i --save migrate
あなたの移動を格納するフォルダを作成!
新しい2つのフォルダがあります.
mkdir src/migrations
mkdir src/migrations-utils
最初の1つは更新スクリプトを格納し、秒はいくつかのユーティリティを格納します.秒を調べましょう.
少しのヘルパー
導入では、migrateはデータベース不可知論者であるとあなたに言いました.
したがって、少しMongoDBコネクタを書く必要があります.
import { MongoClient } from 'mongodb';
import { configs } from '../config/configuration';
const MONGO_URL = configs.mongoUrl;
export const getDb = async () => {
const client: any = await MongoClient.connect(MONGO_URL, { useUnifiedTopology: true });
return client.db();
};
いいね続けましょう.migrateはJavaScriptで作られたツールです.
そして、私たちはtypescriptを使用して、最善のことは、データベースが既に接続された小さなテンプレートを持っています.
import { getDb } from '../migrations-utils/db';
export const up = async () => {
const db = await getDb();
/*
Code your update script here!
*/
};
export const down = async () => {
const db = await getDb();
/*
Code you downgrade script here!
*/
};
何か困ったことがあったts-node/register
migrateコマンドラインで.この小さなヘルパーは、私の蒸散エラーを解決!
同じことを!さあ!そうする!
// eslint-disable-next-line @typescript-eslint/no-var-requires
const tsNode = require('ts-node');
module.exports = tsNode.register;
アップデートパッケージ。JSON
あなたが更新する時間です
package.json
あなたのプロジェクトのために簡単に将来のスクリプトを使用するように!移行ファイルを生成するスクリプト
この甘い線を加えてください
package.json
, スクリプトセクションで!"migrate:create": "migrate create --template-file ./src/migrations-utils/template.ts --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations-utils/ts-compiler.js\"",
--template-file ./src/migrations-utils/template.ts
テンプレートファイルを提供します、それは我々がtypescriptレポにある時から、必要なものです.また、それを好きなようにブートストラップを移動する簡単な方法を提供します!
--migrations-dir=\"./src/migrations\"
移行スクリプトが保存される場所を移動します.デフォルトでは、プロジェクトのルートにあります.
--compiler=\"ts:./src/migrations-utils/ts-compiler.js\"
入力ファイルの扱い方を説明する.さて、このコマンドを実行するだけで、正しいフォルダに空のtypescriptマイグレーションファイルを作成する必要があります!
npm run migrate:create -- <migration name>
アップグレード用スクリプトと下級用スクリプト
Aaaaaaa 2つのより多くの線
package.json
, スクリプトセクションで再び!"migrate:up": "migrate --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations-utils/ts-compiler.js\" up",
"migrate:down": "migrate --migrations-dir=\"./src/migrations\" --compiler=\"ts:./src/migrations-utils/ts-compiler.js\" down"
新しいオプションはありませんが、すでに説明していますが、さわやかな感じです.--migrations-dir=\"./src/migrations\"
あなたの移動を見つけるためにどこに移行するかを伝えます!--compiler=\"ts:./src/migrations-utils/ts-compiler.js\"
どのようにスクリプトを処理するかを移動します.アップデートスクリプトを実行するには、次の手順に従います.
npm run migrate:up
またはスクリプトを格下げするnpm run migrate:down
どのようなときに移動を実行するか?
migrateはプロジェクトのルートでファイルの移行状態を保存します.
このファイルは
migrate.json
.次のようになります.
{
"lastRun": "1605197159478-test.ts",
"migrations": [
{
"title": "1605197159478-test.ts",
"timestamp": 1605197181474
}
]
}
コミットしないmigrate.json
質問?
私はコメントで質問に答えてうれしいです.
あなたが私の不協和音が好きであるならば、私のコーディング和音に加わることを考えてください!
☎️ Webeleon coding lair on discord
また、私にメールすることができますし、契約を提供する💰
✉️ Email me!
そして、私は素敵な男だから、ここでは、ワーキングサンプルを含んでいるこのサンプルレポを取る!
🎁 Get the code of the tuto from github
ドキュメント
Reference
この問題について(MongooseによるNESTJSのためのMongoDB移行システムの構築), 我々は、より多くの情報をここで見つけました https://dev.to/webeleon/building-a-mongodb-migration-system-for-nestjs-with-mongoose-4fbjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol