Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-02 06:40:30
Original
998 Leute haben es durchsucht

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
Nach dem Login kopieren

Windows

powershell -c "irm git.new/mongogrator-installer.ps1 | iex"
Nach dem Login kopieren

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
Nach dem Login kopieren

Nutzungsleitfaden

Eine grundlegende Anleitung zur Verwendung der CLI

Neue Migrationen hinzufügen

Beginnen Sie mit der Initialisierung der Konfigurationsdatei

mongogrator init
Nach dem Login kopieren

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
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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' })
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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

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

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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

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

Protokollsammlungsschema

{
  _id: objectId(),
  name: string,
  createdAt: Date(),
}
Nach dem Login kopieren

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']
}
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage