Mongogrator - alat migrasi MongoDB untuk TS & JS

Barbara Streisand
Lepaskan: 2024-10-02 06:40:30
asal
1004 orang telah melayarinya

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
Salin selepas log masuk

Windows

powershell -c "irm git.new/mongogrator-installer.ps1 | iex"
Salin selepas log masuk

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
Salin selepas log masuk

Panduan penggunaan

Panduan asas tentang cara menggunakan CLI

Menambah migrasi baharu

Mulakan dengan memulakan fail konfigurasi

mongogrator init
Salin selepas log masuk

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
Salin selepas log masuk

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
}
Salin selepas log masuk

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' })
}
Salin selepas log masuk

Senarai migrasi

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

mongogrator list
Salin selepas log masuk

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

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

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

Menjalankan migrasi

Jalankan migrasi hanya dengan memanggil

mongogrator migrate
Salin selepas log masuk

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
Salin selepas log masuk

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

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

Skema pengumpulan log

{
  _id: objectId(),
  name: string,
  createdAt: Date(),
}
Salin selepas log masuk

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']
}
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan