pmurkin/mongo-schema-dumper

2,221 1
Install
composer require pmurkin/mongo-schema-dumper
PHP:>=7.0
License:MIT
Last Updated:Sep 29, 2018
Links: GitHub  ·  Packagist
Maintainer: pmurkin

Scrutinizer Code Quality Total Downloads License

Mongo Schema Dumper for Laravel

Import and export mongodb schema without copying all the data:

  • Collections
  • Indexes
  • Cap sizes

Also you can dump all data from required collections.

This primary use case is when you have developed an application that uses mongodb, and want to setup a new instance with database layout. You can run the console command and create json file with you databases schema looks like something this:

{
    "data": {
        "products": {
            "indexes": [
                {
                    "name": "_id_",
                    "ns": "data.products",
                    "key": {
                        "_id": 1
                    },
                    "v": 2
                }
            ],
            "options": []
        },
        "users: {
            "indexes": [
                {
                    "name": "_id_",
                    "ns": "data.users",
                    "key": {
                        "_id": 1
                    },
                    "v": 2
                }
            ],
            "options": [],
            "data": [
                {
                    "_id": "5858d847e632ed712a9f5c04",
                    "name": "admin"
                },
                {
                    "_id": "5858d872e632ed712a9f5c05",
                    "name": "manager"
                }
            ]
        }
    }
}

After that you can run the console commands to import the schema into the database.

Install

Require this package with composer using the following command:

$ composer require pmurkin/mongo-schema-dumper

After updating composer, add the service provider to the providers array in config/app.php

Pmurkin\MongoSchemaDumper\MongoSchemaDumperServiceProvider::class,

Usage

Export schema to file:

$ php artisan schema:export --databases=data,users --dump=users.roles --file=./schema.json

databases - list of databases for export

dump - list of collections for dump

file - file for save (not required, by default - ./schema.json)

Import schema from file:

$ php artisan schema:import --file=./schema.json

file - file for save (not required, by default - ./schema.json)

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

584,532,650 34,931
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

391,429,217 4,660