@frabbit/mongo-migrate-ts

中文文档
1.0.32发布于 2022/05/31MITTypeScriptCommonJS近 30 天下载 2044

yet another fork...

原始使用文档
文档目录4 节
  1. Installation
  2. Usage
  3. CLI options
  4. Configuration

@frabbit/mongo-migrate-ts

yet another fork...

A library for easy run migrations on mongodb with TypeScript.

Based on migrate-mongo (https://github.com/seppevs/migrate-mongo/), but with TypeScript support.

Installation

Install using your favourite package manager, example using npm

npm install @frabbit/mongo-migrate-ts

You can install it globally for the CLI usage

npm install -g @frabbit/mongo-migrate-ts

Usage

CLI options

Usage: mongo-migrate [options] [command]

Options:
  -h, --help      output usage information

Commands:
  init            Creates the migrations directory and configuration file
  new [options]   Create a new migration file under migrations directory
  up              Run all pending migrations
  down [options]  Undo migrations
  status          Show the status of the migrations

Create a directory for your migrations and instantiate a CLI

import { mongoMigrateCli } from '@frabbit/mongo-migrate-ts';

mongoMigrateCli({
  uri: 'mongodb://username:[email protected]:27017',
  migrationsDir: __dirname,
  migrationsCollection: 'migrations_collection',
});

Create a migration file in the configured migrations folder...

import { MigrationInterface } from '@frabbit/mongo-migrate-ts';
import { Db } from 'mongodb';

export class MyMigration implements MigrationInterface {
  async up(db: Db): Promise<any> {
    await db.createCollection('my_collection');
  }

  async down(db: Db): Promise<any> {
    await db.dropCollection('my_collection');
  }
}

Compile and up all migrations

tsc migrations/index.js && node build/migrations/index.js up

or run directly with ts-node

ts-node migrations/index.ts up

Configuration

{
  // The path where the migrations are stored
  migrationsDir: string;
  // The name of the collection to store the applied migrations
  // (Default: "migrations_changelog")
  migrationsCollection?: string;
  // The connection uri, it can be empty if useEnv is true
  // (Example: mongodb://user:[email protected]:27017/db?authSource=admin)
  uri?: string;
  // The database where run the migrations
  // it can be empty if the database is on the uri or useEnv is true
  database?: string;
  // If true, will load the configuration from environment variables.
  useEnv?: boolean;
  // Options related to environment configuration
  environment?: {
    // The name of the environment variable with the uri connection
    // (Default: MONGO_MIGRATE_URI)
    uriVar?: string;
    // The name of the environment variable with the db name
    // (Default: MONGO_MIGRATE_DB)
    databaseVar?: string;
  };
  // Specific configuration of mongodb client
  // (see https://mongodb.github.io/node-mongodb-native/4.3/interfaces/MongoClientOptions.html)
  options?: MongoClientOptions;
}

Example configuration in json

{
  "uri": "mongodb://admin:[email protected]:27017/mydb?authSource=admin",
  "migrationsDir": "migrations"
}

版本与发布记录

@frabbit/mongo-migrate-ts 共发布 12 个版本,首次发布于 2022/05/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.32latest2022/05/314 年前
1.0.302022/05/294 年前
1.0.262022/05/294 年前
1.0.252022/05/294 年前
1.0.242022/05/294 年前
1.0.222022/05/294 年前

关于 @frabbit/mongo-migrate-ts 的常见问题

@frabbit/mongo-migrate-ts 是什么?

yet another fork...

如何安装 @frabbit/mongo-migrate-ts?

在项目目录运行 npm install @frabbit/mongo-migrate-ts,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:mongodb(4.x.x)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 mongo-migrate,可以用 npx mongo-migrate 直接运行。

@frabbit/mongo-migrate-ts 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@frabbit/mongo-migrate-ts 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@frabbit/mongo-migrate-ts 可以商用吗?

@frabbit/mongo-migrate-ts 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@frabbit/mongo-migrate-ts 的下载量有多少?

根据 npm 官方下载统计,@frabbit/mongo-migrate-ts 在 2026/10/16 – 2026/11/14 这 30 天内被下载 2,044 次,日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@frabbit/mongo-migrate-ts 还在维护吗?

最新版本 1.0.32 发布于 2022/05/31(4 年前);至今共发布 12 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/05/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。