CLI for Synor - Database Schema Migration Tool
using yarn:
yarn add --dev @synor/cli @synor/coreusing npm:
npm install --save-dev @synor/cli @synor/coreSynor CLI reads config file from one of the following locations:
- File path passed to
--configor-cflag .synorrc.js.synorrc.tssynor.config.jssynor.config.ts
The first one found is used by Synor CLI.
Note: ts-node is required for loading config from .ts file
Options in config file is overridden by their available command flag counterparts.
Main Options:
| Name | Description |
|---|---|
databaseEngine | Database Engine function / package name / module path |
databaseUri | Database Engine URI |
sourceEngine | Source Engine function / package name / module path |
sourceUri | Source Engine URI |
Other Options:
You can also specify other configuration options that Synor Core accepts.
Example:
const path = require('path') module.exports = { databaseEngine: `@synor/database-mysql`, databaseUri: `mysql://root:root@localhost:3306/synor`, sourceEngine: `@synor/source-file`, sourceUri: `file://${path.resolve('migrations')}`, baseVersion: '0', recordStartId: 1, migrationInfoNotation: { do: 'do', undo: 'undo', separator: '.', extension: 'sql' } }synor currentsynor dropsynor help [COMMAND]synor infosynor migrate [TARGETVERSION]synor repairsynor validate
show current migration record
USAGE $ synor current OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI --columns=columns only show provided columns (comma-separated) --no-header hide table header from output DESCRIPTION This record indicates the current migration version for the database. EXAMPLES $ synor current $ synor current --no-header --columns version See code: src/commands/current.ts
drop database
USAGE $ synor drop OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI DESCRIPTION This command is DANGEROUS. Drops everything in the database. It should only be used for development purposes. EXAMPLE $ synor drop See code: src/commands/drop.ts
display help for synor
USAGE $ synor help [COMMAND] ARGUMENTS COMMAND command to show help for OPTIONS --all see all commands in CLI See code: @oclif/plugin-help
show migration information
USAGE $ synor info OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI -x, --extended show extra columns -z, --outOfOrder include out of order pending migrations --columns=columns only show provided columns (comma-separated) --filter=filter filter property by partial string matching, ex: name=foo --no-header hide table header from output DESCRIPTION Shows detailed information about schema migrations. EXAMPLES $ synor info $ synor info --outOfOrder $ synor info --no-header --columns version --filter state=pending See code: src/commands/info.ts
migrate database to specific version
USAGE $ synor migrate [TARGETVERSION] ARGUMENTS TARGETVERSION target migration version OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -f, --from=from from migration version -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI -t, --to=to to migration version -z, --outOfOrder include out of order pending migrations DESCRIPTION Runs necessary migrations to reach the target migration version. EXAMPLES $ synor migrate 42 $ synor migrate --from=00 --to=42 $ synor migrate 42 --outOfOrder See code: src/commands/migrate.ts
repair migration records
USAGE $ synor repair OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI DESCRIPTION - Updates the mismatched hashes - Deletes the dirty records EXAMPLE $ synor repair See code: src/commands/repair.ts
validate migration records
USAGE $ synor validate OPTIONS -D, --databaseEngine=databaseEngine Database Engine -S, --sourceEngine=sourceEngine Source Engine -b, --baseVersion=baseVersion Version of the Base Migration -c, --config=config Configuration file path -d, --databaseUri=databaseUri Database URI -i, --recordStartId=recordStartId Migration Record Start ID -s, --sourceUri=sourceUri Source URI -x, --extended show extra columns DESCRIPTION Validates the records for migrations that are currently applied. EXAMPLE $ synor validate See code: src/commands/validate.ts