1.0.9 • Published 7 years ago

devhouse-migrate v1.0.9

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

Migration CLI for mongodb

NPM  

npm install -g devhouse-migrate

This module requires nodejs 8.

All migrations staged in database in migrations collection by default (you can change that, see usage). The form of the stored database object:

{
    "_id" : ObjectId("5988679406f2faeaab6a3b2a"),
    "name" : "1484640085344-addCurrentOrderProcessIdToUsers.js",
    "applied" : ISODate("2017-08-07T13:13:56.835Z")
}

The connection string is retrieved from config module. By default db.connectionString property is taken. The module expects to have configuration files in ./config directory

Usage

In order to show usage type

migrate help
usage: 
        
        migrate [keys] arguments [param]
    
    arguments:
        
        create [name]    creates new migration, and the name of the migration [optional] (optional)
        up [name]        migrates from current position up to migration name [optional] (INCLUSIVELY)
        down [name]      downgrades database from current position down to migration name [optional] (INCLUSIVELY)
        applied          show currently applied migrations
        pending          list migration that could be applied
        help             show this help message
    
    keys: 
        
        --migrationsDir='./new-migration'                absolute or relative path to the migrations dir. By default './migrations'
        --collection='db-migrations'                     the name of the collection to persist in the database. By default 'migrations'
        --configConnection='database.connectionString'   the name of the property of the 'config' module to be used as connection string. By default 'db.connectionString'
        --force                                          ignore migration that has no related files in case of down way
        --silence                                        do not ask at all
    

Examples


If you want to show all migration to be applied type

migrate pending

This will returns the full list of migration to apply

The following 6 migrations could be applied:
1: 1484640085344-addCurrentOrderProcessIdToUsers.js
2: 1485165880117-UpdatePropertyBankInfoSchema.js
3: 1497443127517-UpdateUsersBirthdays.js
4: 1497531877195-SetFromAmbitaMark.js
5: 1499927755913-SetFromAmbitaForApartmentOwnersAndUsers.js

In order apply all migration

migration up 

Migrate to specific migration. This will migrate to provided migration inclusively

migration up 1497531877195-SetFromAmbitaMark.js

In order to show currently applied migrations

migrate applied

this will return

The following 7 already applied on the database:
1: 1497443127600-SuperMigration.js
2: 1484640085344-addCurrentOrderProcessIdToUsers.js
3: 1485165880117-UpdatePropertyBankInfoSchema.js
4: 1497443127517-UpdateUsersBirthdays.js
5: 1497531877195-SetFromAmbitaMark.js
6: 1499927755913-SetFromAmbitaForApartmentOwnersAndUsers.js

In order to downgrade to specific migration use

migrate down 1497443127517-UpdateUsersBirthdays.js

And that will downgrate from migration #6 down to #4 inclusively


In some cases you might noticed the following warning

THE FOLLOWING 1 MIGRATIONS ARE IN THE DATABASE BUT NOT IN LOCAL FILES <<<
1: 1497443127600-SuperMigration.js

That means that you cannot downgrade without --force option, that will ignore that migration


In case of up and down migrations you will be asked to approve connection string

with current working environment will be used mongodb://localhost/mongomigrate are you agree with that? [y/n]: y

choose y or n in order to accept/decline

If you don't want to see such messages and reply always yes use --silence key.


In order to create migration use. The name is optional.

migrate create MyNewMigration

This will generate file in you migrations (or --migrationsDir) folder file

file 1502115579733-MyNewMigration.js successfully created

For futher details see

migrate help
1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago