@btime/migration
v1.0.0
Published
## Usage
Readme
BTime V2 Migration
:books: Table of Contents
Setup
Copy enviroment file and configure the variables
$ cp .env.dist .envInstall dependencies
$ npm iUsage
Generating a migration
$ ./bin/generate -t sqlExample output: Generated new migration file: /home/user/projects/btime-migration/migrations/Version20181002114415382.js
All run migrations get versioned, based on it's name - which reflects a unique timestamp. That's the version used when rolling back the migration.
By default, migration files are created at ./migrations (project root). You can specify a custom directory by utilizing the --workdir flag:
$ ./bin/generate -t sql --workdir ./custom-mirations-dirThe generate, migrate and rollback commands support a custom directory to be specified.
:information_source: Important The directory must exist in order to be used.
Running migrations
$ ./bin/migrateThe above command will run (up) all migration files, considering default options (flags).
Hitting multiple databases
The migration process might target multiple databases through the "--multiple" flag.
$ ./bin/migrate --multiple:information_source: Important Environment variables prefixed with "MULTIPLE_" are used in order to find target databases.
Rolling back migrations
$ ./bin/rollback --version [version]The above command will run (down) the specified migration, considering default options (flags).
Just like the migrate command, you can make use of the --multiple flag and target multiple databases:
$ ./bin/rollback --version [version] --multipleAll commands come with a --help flag, which displays useful information about it's usage options.
Testing
Tests are run using Mocha and Chai.
Run test suite
$ npm run testRun coverage report
$ npm run coverageRun coverage report in HTML
$ npm run htmlCoverageLinting
To scan the code base and "auto-fix" all that violates the defined lint rules, run:
$ npm run fixStyle