1.0.0 • Published 6 years ago

@btime/migration v1.0.0

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

BTime V2 Migration

:books: Table of Contents

  1. Setup
  2. Usage
  3. Testing
  4. Linting

Setup

Copy enviroment file and configure the variables

$ cp .env.dist .env

Install dependencies

$ npm i

Usage

Generating a migration

$ ./bin/generate -t sql

Example 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-dir

The 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/migrate

The 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

:informationsource: 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] --multiple

All 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 test

Run coverage report

$ npm run coverage

Run coverage report in HTML

$ npm run htmlCoverage

Linting

To scan the code base and "auto-fix" all that violates the defined lint rules, run:

$ npm run fixStyle