@conpago/mongo-seeding-cli
v4.1.0
Published
The ultimate command line tool for populating your MongoDB database.
Downloads
15
Readme
Mongo Seeding CLI
The ultimate CLI tool for populating your MongoDB database :rocket:
Define MongoDB documents in JSON, JavaScript or even TypeScript file(s). Import them with command line interface.
Installation
To install the app, run the following command:
npm install -g mongo-seeding-cli
Usage
Follow the tutorial to define documents and collections to import.
In order to seed your database with data from current directory using default configuration, run the following command:
seed
You can specify custom settings with command line parameters. The following example imports data from
./example/data
directory using MongoDB connection URImongodb://127.0.0.1:27017/mydb
with option to drop database before import:seed -u 'mongodb://127.0.0.1:27017/mydb' --drop-database ./example/data
You can also use environmental variables to configure the CLI. For example:
DB_URI='mongodb://127.0.0.1:27017/mydb' DROP_DATABASE=true seed ./example/data
Full configuration options are described in Configuration section.
Configuration
You can configure data import with command line parameters or environmental variables.
Note: Command line parameters have always a higher priority over environmental variables.
Command line parameters
You can use the following parameters while using seed
tool:
| Name | Default Value | Description |
|-------------|----------------|---------------------|
| {PATH}
| current directory | Path to directory containing import data |
| --db-uri {URI}
or -u {URI}
| undefined
| If defined, the URI will be used for establishing connection to database, ignoring values defined via other db-*
parameters (e.g. db-name
, db-host
, etc.)
| --db-protocol {DB_PROTOCOL}
| mongodb
| MongoDB database protocol |
| --db-host {DB_HOST}
| 127.0.0.1
| MongoDB database host |
| --db-port {DB_PORT}
| 27017
| MongoDB database port |
| --db-name {DB_NAME}
| database
| Name of the database |
| --db-username {DB_USERNAME}
| undefined
| Username for connecting with database that requires authentication |
| --db-password {DB_PASSWORD}
| undefined
| Password for connecting with database that requires authentication |
| --db-options
| undefined
| MongoDB connection options in a form of multiple {key}={value}
values, separated by semicolon. For example: ssl=true;maxPoolSize=50
|
| --drop-database
| false
| Drops entire database before data import |
| --drop-collections
| false
| Drops every collection which is being imported |
| --remove-all-documents
| false
| Delete all documents from every collection that is being imported |
| --replace-id
| false
| Replaces id
property with _id
for every document during data import |
| --set-timestamps
| false
| Sets createdAt
and updatedAt
timestamps for every document during data import |
| --reconnect-timeout
| 10000
| Maximum time in milliseconds of waiting for successful MongoDB connection |
| --ejson-parse-canonical-mode
| false
| Enables EJSON Canonical Mode for all parsed .json
files. By default the EJSON Relaxed mode is enabled. |
| --transpile-only
| false
| Disables type checking on TypeScript files import. This option vastly improves performance of TypeScript data import |
| --silent
or -s
| false
| Disables printing logging of Mongo Seeding status to standard output |
| --help
or -h
| n/a | Help
Environmental variables
You can use the following environmental variables while using seed
tool:
| Name | Default Value | Description |
|-------------|----------------|---------------------|
| DB_URI
| undefined
| If defined, the URI is used for establishing connection to database, ignoring values given in DB_*
environmental variables (e.g. DB_HOST
, DB_PORT
, etc.).
| DB_HOST
| 127.0.0.1
| MongoDB database host |
| DB_PORT
| 27017
| MongoDB database port |
| DB_NAME
| database
| Name of the database |
| DB_USERNAME
| undefined
| Username for connecting with database that requires authentication |
| DB_PASSWORD
| undefined
| Password for connecting with database that requires authentication |
| DB_OPTIONS
| undefined
| MongoDB connection options in a form of multiple {key}={value}
values, separated by semicolon. For example: ssl=true;maxPoolSize=50
. |
| DROP_DATABASE
| false
| Drops entire database before data import |
| DROP_COLLECTIONS
| false
| Drops every collection which is being imported |
| REMOVE_ALL_DOCUMENTS
| false
| Delete all documents from every collection that is being imported |
| REPLACE_ID
| false
| Replaces id
property with _id
for every document during import; useful for ORMs |
| SET_TIMESTAMPS
| false
| Sets createdAt
and updatedAt
timestamps for every document during data import |
| RECONNECT_TIMEOUT
| 10000
| Maximum time in milliseconds of waiting for successful MongoDB connection |
| EJSON_PARSE_CANONICAL_MODE
| false
| Enables EJSON Canonical Mode for all parsed .json
files. By default the EJSON Relaxed mode is enabled. |
| TRANSPILE_ONLY
| false
| Disables type checking on TypeScript files import. This option vastly improves performance of TypeScript data import |
| SILENT
| false
| Disables printing logging of Mongo Seeding status to standard output |