A simple migration system for Meteor supporting up/downwards migrations and command line usage.
percolate:migrations is a migration system designed specifically for Meteor applications. It provides a structured way to manage database schema changes over time, ensuring data consistency across different versions of an application. The system supports both upward and downward migrations, allowing developers to roll back changes when needed.
Meteor developers who need to manage database schema changes in their applications, particularly those working on projects that require versioned, reversible database migrations. It is also suitable for teams using shared MongoDB databases across multiple Meteor apps.
Developers choose percolate:migrations because it is a simple, reliable migration system built specifically for Meteor's ecosystem, with features like bidirectional migrations, locking to prevent conflicts, and async support. Its minimal API integrates seamlessly with Meteor while handling the complexities of database migration safety.
Simple migration system for Meteor
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both up and down functions for each migration, allowing easy rollbacks as demonstrated in the README with examples like migrating to version 0 to undo all changes.
Prevents multiple app instances from running migrations simultaneously, ensuring data consistency in clustered deployments, which is highlighted in the README's error handling section.
Fully supports Meteor's async/await patterns, with README examples showing how to use Meteor.wrapAsync or direct async functions from Meteor 2.8+ for asynchronous operations.
Allows using a custom MongoDB collection for migration tracking, useful for multi-app database scenarios as noted in the configuration options.
The command-line usage is marked as deprecated for post 0.9 users, with the migrate.sh script no longer included, limiting automation and deployment scripting options.
If a migration fails, developers must manually remove the lock from the database by updating the migrations collection or calling Migrations.unlock(), which adds operational risk and complexity.
Designed exclusively for Meteor and MongoDB, so it cannot be used for projects transitioning to other frameworks or needing SQL database migrations, limiting portability.