Heim >Web-Frontend >js-Tutorial >Mongogrator – ein MongoDB-Migrationstool für TS und JS

Mongogrator – ein MongoDB-Migrationstool für TS und JS

Barbara Streisand
Barbara StreisandOriginal
2024-10-02 06:40:301035Durchsuche

Mongogrator - a MongoDB migration tool for TS & JS

Repository hier

Mongogrator ist eine sehr schnelle Datenbankmigrations-CLI für MongoDB. Sein Zweck besteht darin, Migrationen für Entwicklungs- und Produktionsphasen einfach zu erstellen und auszuführen

Installieren

Mit dem folgenden Befehl wird Mongogrator automatisch heruntergeladen, installiert und zum PATH hinzugefügt

MacOS/Linux

curl -fsSL git.new/mongogrator-installer.sh | bash

Windows

powershell -c "irm git.new/mongogrator-installer.ps1 | iex"

Liste der Befehle

Mongogrator CLI
Usage: mongogrator <command> [options]

Commands:
   init [--js]               Initialize a new configuration file
   add                       Creates a new migration file with the provided name
   list                      List all migrations and their status
   migrate [config_path]     Run all migrations that have not been applied yet
   version, -v, --version    Prints the current version of Mongogrator

Flags:
   --help, -h                Prints the detailed description of the command

Nutzungsleitfaden

Eine grundlegende Anleitung zur Verwendung der CLI

Neue Migrationen hinzufügen

Beginnen Sie mit der Initialisierung der Konfigurationsdatei

mongogrator init

Dadurch wird eine mongogrator.config.ts-Datei am Speicherort des Befehls initialisiert. Sie können optional am Ende des Befehls ein Flag --js übergeben, um in einer js-Datei zu initialisieren

Richten Sie die URL auf den gewünschten Mongo-Cluster ein und stellen Sie sicher, dass er ausgeführt wird

mongogrator add insert_user

Dadurch wird die Migrationsdatei unter dem Verzeichnisschlüssel erstellt, der im Konfigurationspfad „migrationsPath“ zugewiesen ist

Das Folgende ist ein Beispiel einer neu erstellten TS-Migrationsdatei

import type { Db } from 'mongodb'

/**
 * This function is called when the migration is run.
 * @param _db The mongodb database object that's passed to the migration
 */
export const migrate = async (_db: Db): Promise<void> => {
  // Migration code here
}

Die Migrationen werden über den nativen MongoDB Node.js-Treiber ausgeführt

Beispiel für eine Migrationsabfrage

import type { Db } from 'mongodb'

/**
 * This function is called when the migration is run.
 * @param _db The mongodb database object that's passed to the migration
 */
export const migrate = async (_db: Db): Promise<void> => {
  // Migration code here
  _db.collection('users').insertOne({ name: 'Alex' })
}

Migrationsliste

Sie können so viele Migrationen hinzufügen, wie Sie möchten, und dann den Listenbefehl aufrufen, um den Status jeder Migration anzuzeigen

mongogrator list

Dadurch wird eine Liste aller Migrationen ausgedruckt, jede hat den Status „NICHT MIGRIERT“ oder „MIGRIERT“

┌───┬───────────────────────────────┬──────────────┐
│   │ migration                     │ status       │
├───┼───────────────────────────────┼──────────────┤
│ 0 │ 20240923150201806_insert_user │ NOT MIGRATED │
└───┴───────────────────────────────┴──────────────┘

Natürlich lautet der Status NICHT MIGRIERT, da wir die Migration noch nicht durchgeführt haben

Ausführen der Migrationen

Führen Sie die Migrationen einfach per Anruf durch

mongogrator migrate

Dadurch werden alle Migrationen ausgeführt und in der Datenbank unter dem angegebenen Sammlungsnamen in der Konfiguration „logsCollectionName“ protokolliert

Für Produktionszwecke können Sie den Konfigurationspfad direkt an den Migrationsbefehl übergeben, wenn er nicht unter demselben Pfad zugänglich ist

mongogrator migrate /dist

Wenn Sie nun den Listenbefehl erneut ausführen, wird angezeigt, dass die Migrationsdatei erfolgreich ausgeführt wurde

┌───┬───────────────────────────────┬──────────────┐
│   │ migration                     │ status       │
├───┼───────────────────────────────┼──────────────┤
│ 0 │ 20240923150201806_insert_user │ MIGRATED     │
└───┴───────────────────────────────┴──────────────┘

Protokollsammlungsschema

{
  _id: objectId(),
  name: string,
  createdAt: Date(),
}

Konfiguration

{
  url: 'mongodb://localhost:27017', // Cluster url
  database: 'test', // Database name for which the migrations will be executed
  migrationsPath: './migrations', // Migrations directory relative to the location of the commands
  logsCollectionName: 'migrations', // Name of the logs collection that will be stored in the database
  format: 'ts', // Format type of the migration files ['ts', 'js']
}

Alle Konfigurationsschlüssel mit Pfadwerten sind relativ zum Speicherort der Konfigurationsdatei selbst

Das obige ist der detaillierte Inhalt vonMongogrator – ein MongoDB-Migrationstool für TS und JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn