@mongoosejs/migrations

0.2.5 • Public • Published

migrations

Mongoose Migration Framework

Getting Started

// Import the migration framework. Put this import **before** any other imports,
// except dotenv or other environment configuration
const migrations = require('@mongoosejs/migrations');

const Character = require('./models/character');
const mongoose = require('mongoose');

run().catch(err => { console.error(err); process.exit(-1); });

async function run() {
  await mongoose.connect('mongodb://localhost:27017/migrations_examples');
  // Tell the migration framework that a migration is starting.
  // Set `restart` option if you want to restart a previously failed migration.
  await migrations.startMigration({ restart: process.env.RESTART });

  try {
    // Put any migration logic here - update, save, eachAsync, etc.
    await Character.updateMany({}, { $set: { ship: 'USS Enterprise' } });
  } finally {
    // Make sure to always call `endMigration()`, even if errors occur
    await migrations.endMigration();
    await mongoose.disconnect();
  }
}

UI Setup

You can run the Migration Framework UI as an executable using the provided migration-ui command:

env PORT=3001 env MONGO_URI="mongodb://localhost:27017/mydb" ./node_modules/.bin/migration-ui

You can also import the Migration Framework UI to your Express app:

Note: you are responsible for securing the Migration Framework UI. There is currently no restrictions on the UI or API: anyone that can access the Migration Framework UI's URL can read migration data. Note: do not run the Migration Framework UI in the same process that runs migrations.

Readme

Keywords

none

Package Sidebar

Install

npm i @mongoosejs/migrations

Weekly Downloads

444

Version

0.2.5

License

none

Unpacked Size

52.4 kB

Total Files

31

Last publish

Collaborators

  • vkarpov15