devhouse-migrate v1.0.9
Migration CLI for mongodb
npm install -g devhouse-migrateThis 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 helpusage:
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 pendingThis 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.jsIn order apply all migration
migration up Migrate to specific migration. This will migrate to provided migration inclusively
migration up 1497531877195-SetFromAmbitaMark.jsIn order to show currently applied migrations
migrate appliedthis 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.jsIn order to downgrade to specific migration use
migrate down 1497443127517-UpdateUsersBirthdays.jsAnd 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.jsThat 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]: ychoose 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 MyNewMigrationThis will generate file in you migrations (or --migrationsDir) folder file
file 1502115579733-MyNewMigration.js successfully createdFor futher details see
migrate help