Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mongoengine-migrate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongoengine-migrate

Migrations for MongoEngine ODM inspired by Django

  • 0.0.3
  • PyPI
  • Socket score

Maintainers
1

Mongoengine-migrate

version pyversions travis license

Framework-agnostic schema migrations for Mongoengine ODM. Inspired by Django migrations system.

Read documentation

WARNING: this is an unstable version of software. Please backup your data before migrating

Installation

pip3 install mongoengine-migrate

Features

  • Documents
    • Creating, dropping, renaming
    • Renaming a collection
    • Creating, dropping, renaming of fields
    • Converting to/from a DynamicDocument
    • Inheritance
  • Embedded documents
    • Recursive creating, dropping
    • Renaming
    • Recursive creating, dropping, renaming of fields
    • Converting to/from a DynamicEmbeddedDocument
    • Inheritance
  • Altering fields in document and embedded documents
    • Changing of init parameters such as db_field, required, etc.
    • Convertion between field types (if possible)
  • Indexes
    • Creating, dropping, renaming
    • Handling fields constraints such as unique and unique_with
  • Automatic select a query or a python loop to perform an update depending on MongoDB version
  • Two policies of how to work with existing data which does not meet to mongoengine schema

All mongoengine field types are supported, including simple types, lists, dicts, references, GridFS, geo types, generic types.

Typical migration file

from mongoengine_migrate.actions import *

# Existing data processing policy
# Possible values are: strict, relaxed
policy = "strict"

# Names of migrations which the current one is dependent by
dependencies = [
    'previous_migration'
]

# Action chain
actions = [
    CreateDocument('Author', collection='author'),
    CreateField('Author', 'name', choices=None, db_field='name', default=None, max_length=None,
        min_length=None, null=False, primary_key=False, regex=None, required=False,
        sparse=False, type_key='StringField', unique=False, unique_with=None),
    RenameField('Book', 'name', new_name='caption'),
    AlterField('Book', 'caption', required=True, db_field='caption'),
    AlterField('Book', 'year', type_key='IntField', min_value=None, max_value=None),
    DropField('Book', 'isbn'),
    CreateField('Book', 'author', choices=None, db_field='author', dbref=False, default=None,
        target_doctype='Author', null=False, primary_key=False, required=False, sparse=False,
        type_key='ReferenceField', unique=False, unique_with=None),
]

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc