Rumah  >  Artikel  >  hujung hadapan web  >  Mongogrator - alat migrasi MongoDB untuk TS & JS

Mongogrator - alat migrasi MongoDB untuk TS & JS

Barbara Streisand
Barbara Streisandasal
2024-10-02 06:40:301001semak imbas

Mongogrator - a MongoDB migration tool for TS & JS

Repositori di sini

Mongogrator ialah CLI pemindahan pangkalan data yang sangat pantas untuk MongoDB. Tujuannya adalah untuk membuat dan menjalankan migrasi dengan mudah untuk peringkat pembangunan dan pengeluaran

Memasang

Menggunakan arahan berikut, ia akan memuat turun, memasang dan menambah Monogrator pada PATH secara automatik

MacOS/Linux

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

Windows

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

Senarai arahan

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

Panduan penggunaan

Panduan asas tentang cara menggunakan CLI

Menambah migrasi baharu

Mulakan dengan memulakan fail konfigurasi

mongogrator init

Ini memulakan fail mongogrator.config.ts di lokasi arahan. Anda boleh menghantar bendera --js secara pilihan pada penghujung arahan untuk memulakan dalam fail js

Sediakan url ke gugusan mongo yang diingini, dan pastikan ia berjalan

mongogrator add insert_user

Ini akan mencipta fail migrasi di bawah kunci direktori yang diberikan dalam config migrationPath

Berikut ialah contoh fail migrasi ts yang baru dibuat

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
}

Penghijrahan dilaksanakan melalui pemacu MongoDB Node.js asli

Contoh pertanyaan migrasi

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' })
}

Senarai migrasi

Anda boleh menambah seberapa banyak migrasi yang anda mahu dan kemudian memanggil arahan senarai untuk memaparkan status setiap satu

mongogrator list

Ini akan mencetak senarai semua penghijrahan, masing-masing mempunyai status sama ada TIDAK BERHIJRAH atau BERHIJRAH

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

Sememangnya, status TIDAK akan DIHIJRAH kerana kami belum menjalankan migrasi lagi

Menjalankan migrasi

Jalankan migrasi hanya dengan memanggil

mongogrator migrate

Ini akan menjalankan semua migrasi dan log mereka ke pangkalan data di bawah nama koleksi yang ditentukan dalam log konfigurasiCollectionName

Untuk tujuan pengeluaran, anda boleh menghantar laluan konfigurasi kepada arahan migrasi secara terus jika ia tidak boleh diakses di bawah laluan yang sama

mongogrator migrate /dist

Sekarang jika anda menjalankan perintah senarai sekali lagi, ia akan mendedahkan bahawa fail migrasi telah berjaya dilaksanakan

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

Skema pengumpulan log

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

Konfigurasi

{
  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']
}

semua kunci konfigurasi dengan nilai laluan adalah relatif kepada lokasi fail konfigurasi itu sendiri

Atas ialah kandungan terperinci Mongogrator - alat migrasi MongoDB untuk TS & JS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn