migrate-mongodb-persistence

Mixin for migrate CLI that will persist current migration state to a MongoDB collection instead of a flat file.

Usage no npm install needed!

<script type="module">
  import migrateMongodbPersistence from 'https://cdn.skypack.dev/migrate-mongodb-persistence';
</script>

README

migrate-mongodb-persistence

Mixin for migrate CLI that will persist current migration state to a MongoDB collection instead of a flat file.

This is useful when you have several transient application servers (and filesystems) sharing a single database. You only need to migrate once per database; not once per filesystem.

This makes migrate behave more like Django South or Ruby on Rails ActiveRecord Migrations.

Usage

  1. Make sure you're using a branch of migrate that supports mixins. npm install --save-dev git://github.com/gobengo/node-migrate#012015_mixins.

  2. Create a new module like tools/store-migration-state-in-mongo.js. Something like:

    var mongoDbConnectionString = 'localhost'; // or get from your config file
    var migrationStateCollectionname = 'migration_state'; // or whatever
    
    module.exports = require('migrate-mongo-persistence')(
        mongoDbConnectionString, migrationStateCollectionname);
    
  3. When running the migrate cli, use your mixin like ./node_modules/.bin/migrate --use tools/store-migration-state-in-mongo.js <migrateCommand>