Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Streeterxs/mongoose-partial-dump
A partial dumper for mongoose/mongoDB
https://github.com/Streeterxs/mongoose-partial-dump
Last synced: 8 days ago
JSON representation
A partial dumper for mongoose/mongoDB
- Host: GitHub
- URL: https://github.com/Streeterxs/mongoose-partial-dump
- Owner: Streeterxs
- Created: 2021-03-16T00:02:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-17T02:06:20.000Z (over 1 year ago)
- Last Synced: 2024-10-02T03:18:48.450Z (about 2 months ago)
- Language: TypeScript
- Size: 1.51 MB
- Stars: 13
- Watchers: 3
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
## Mongoose Partial Dump
A partial dumper helper for a mongoose environment.
This package will aid developers to create partial dumps of a mongoDB database using mongoose. Making possible to easily dump only documents related to specifics functionalities of a bigger project.
## Table of Contents
- [Dumper](#dumper)
- [Anonymization](#anonymize-type-enum)
- [Restore](#restore)
- [Installation](#installation)### Installation
- `npm install -g mongoose-partial-dumper`
- `npm install mongoose-partial-dumper`
- `yarn add mongoose-partial-dump`## DUMPER
Responsible for write dump files or log dump json
### Usage
- Create a partial-dump.config.{ts, js} file
- `yarn partial dump [id] [outputDir]`### Strategies
#### Default
![Default strategy](images/mongoose-partial-dump-default-strategy2.png)
#### Config
| Install: | type: | Description: | Required: | example: |
| --------------- | ------------ | ---------------------------------------------- | --------- | ------------------------------------------ |
| db | object | database input configurations | **true** | {url: ''} |
| db.url | string | database url configurations | **true** | |
| models | Model[] | Mongoose Model list | **true** | {models: [User]} |
| getPayload | function | Function that returns a Model.find() Object | **false** | {\_id: , company: } |
| outputDir | string | database input configurations | **false** | 'dump.json' |
| anonymize | object | anonymize info object, data anonymization | **false** | {field: 'name', type: 'name'} |
| anonymize.field | string | input to dumper know which fields to anonymize | **false** | 'name', 'phone', 'address', etc... |
| anonymize.type | enum | input to dumper know which type the field is | **false** | 'name', 'phone', 'address', etc... |### Anonymize Type Enum
- name
- phone
- address
- avatar
- birthdate
- creationDate
- companyName#### CLI
##### Arguments
| Input: | type: | Description: | Required: | example: |
| -------------- | ------ | ----------------------------------------------------------------------- | --------- | -------------------------- |
| collectionName | string | Main collection name to be base of your dump | **true** | 'User' |
| id | string | If given, dump will priorize this input to return all documents related | **false** | '60b40699c73c9095df00c22b' |
| outputDir | string | Path to file to be created or overwriten | **false** | 'dump.json' |##### Options
| Input: | type: | Description: | Required: | example: |
| ------ | ------ | -------------------------------------------------------------------------------------- | --------- | -------- |
| --log | string | If this option is given, no file will be generated, instead a log will show on console | **false** | 'User' |## RESTORE
Responsible for read dump files and import to your database
### Usage
- Create a partial-dump.config.{ts, js} file
- `yarn partial restore [inputDir]`#### Config
| Install: | type: | Description: | Required: | example: |
| -------- | ------------ | ------------------------------------------------------- | --------- | ------------------------------------------ |
| db | object | database input configurations | **true** | {url: ''} |
| db.url | string | database url configurations | **true** | |
| models | Model[] | Mongoose Model list | **true** | {models: [User]} |
| inputDir | string | Path to file to be restored (imported to your database) | **false** | 'dump.json' |#### CLI
##### Arguments
| Input: | type: | Description: | Required: | example: |
| -------- | ------ | ------------------------------------------------------- | --------- | ----------- |
| inputDir | string | Path to file to be restored (imported to your database) | **false** | 'dump.json' |### Examples
- Mongoose partial dumper example - https://github.com/Streeterxs/mongoose-partial-dump-example (use the scripts in package.json to make your tests easier)
- Mongoose partial monorepo example https://github.com/Streeterxs/mongoose-partial-monorepo-example (example usage in a monorepo environment)