A MongoDB migration tool.
Project description
Mongrate
A lightweight MongoDB migration tool.
Overview
Mongrate simplifies managing schema changes in MongoDB. It provides a robust migration system to track, apply, and rollback changes to your MongoDB database.
Features
- Initialize a MongoDB migration system with a single command.
- Create migration scripts effortlessly.
- Apply migrations incrementally or all at once.
- Rollback specific migrations or all migrations.
- View migration history, including applied and pending migrations.
Installation
Install Mongrate using pip:
pip install mongrate
Getting Started
1. Initialize the System
Set up Mongrate in your project:
mongrate init
This command creates a configuration file (mongrate_config.yaml) and a migrations directory.
2. Configuration
Update the mongrate_config.yaml file with your database details:
db_url: "mongodb://localhost:27017"
db_name: "my_database"
migrations_dir: "migrations"
3. Create a Migration
Generate a new migration file:
mongrate create add_users_collection
This creates a new script in the migrations directory.
4. Define Migration
Edit the generated migration script to specify your database changes:
# Example: 20241228230118_add_users_collection.py
def upgrade(db):
db.create_collection("users")
db["users"].insert_one({"name": "admin", "role": "superuser"})
def downgrade(db):
db.drop_collection("users")
5. Apply Migrations
Apply all pending migrations:
mongrate upgrade all
Apply a specific migration:
mongrate upgrade 20241228230118_add_users_collection.py
6. Rollback Migrations
Rollback all migrations:
mongrate downgrade all
Rollback a specific migration:
mongrate downgrade 20241228230118_add_users_collection.py
7. View Migration History
Check applied and pending migrations:
mongrate history
Example output:
Applied Migrations:
- 20241228230118_add_users_collection.py
Pending Migrations:
- 20241228233045_add_orders_collection.py
Commands Overview
| Command | Description |
|---|---|
mongrate init |
Initializes the migration system. |
mongrate create <name> |
Creates a new migration script. |
mongrate upgrade all |
Applies all pending migrations. |
mongrate upgrade <file> |
Applies a specific migration. |
mongrate downgrade all |
Rolls back all applied migrations. |
mongrate downgrade <file> |
Rolls back a specific migration. |
mongrate history |
Displays applied and pending migrations. |
Example Workflow
Initialize Mongrate:
mongrate init
Create a migration:
mongrate create add_users_collection
Edit the migration file:
def upgrade(db):
db.create_collection("users")
Apply migrations:
mongrate upgrade all
View migration history:
mongrate history
Rollback a migration:
mongrate downgrade add_users_collection.py
Why Use Mongrate?
- Simplifies MongoDB migration management.
- Tracks applied and pending migrations automatically.
- Provides an easy-to-use CLI.
- Designed specifically for MongoDB workflows.
License
Mongrate is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mongrate-0.0.4.tar.gz.
File metadata
- Download URL: mongrate-0.0.4.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dc996fe168c11cbb80266d248e704f821fd1cae86047961f79d2ab0ae367fbd
|
|
| MD5 |
ae914129dd41b206b9028424dabd6c5b
|
|
| BLAKE2b-256 |
adde4d31e5599dca42b62c90038eefef5b8207c333340348037014aab893a5a1
|
File details
Details for the file mongrate-0.0.4-py3-none-any.whl.
File metadata
- Download URL: mongrate-0.0.4-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebcef9062af696182d58ed48af5ab3ed66e438c2a1dcc70b3a69b30723efa105
|
|
| MD5 |
a410c875ada0665a88a8fd94f78f853e
|
|
| BLAKE2b-256 |
3b2690e65a8886034c1784c1908b58a5146cfe958182f47f963b29580a939816
|