@synor/cli v0.9.2
Synor CLI
CLI for Synor - Database Schema Migration Tool
Installation
using yarn:
yarn add --dev @synor/cli @synor/coreusing npm:
npm install --save-dev @synor/cli @synor/coreConfiguration
Synor 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',
},
}Commands
synor completionsynor completion:generatesynor currentsynor dropsynor help [COMMAND]synor infosynor migrate [TARGETVERSION]synor repairsynor validate
synor completion
completion plugin
USAGE
$ synor completion
OPTIONS
-s, --shell=bash|fish|zsh (required) Name of shell
EXAMPLE
$ synor completion --shell zshSee code: oclif-plugin-completion
synor completion:generate
generates completion script
USAGE
$ synor completion:generate
OPTIONS
-s, --shell=bash|fish|zsh (required) Name of shell
EXAMPLE
$ synor completion:generate --shell zshSee code: oclif-plugin-completion
synor current
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 versionSee code: src/commands/current.ts
synor drop
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 dropSee code: src/commands/drop.ts
synor help [COMMAND]
display help for synor
USAGE
$ synor help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLISee code: @oclif/plugin-help
synor info
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=pendingSee code: src/commands/info.ts
synor migrate [TARGETVERSION]
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 --outOfOrderSee code: src/commands/migrate.ts
synor repair
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 repairSee code: src/commands/repair.ts
synor validate
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 validateSee code: src/commands/validate.ts