Skip to content
This repository was archived by the owner on Apr 19, 2020. It is now read-only.

Synor/cli

Repository files navigation

Synor CLI Version License oclif

Synor CLI

CLI for Synor - Database Schema Migration Tool

Installation

using yarn:

yarn add --dev @synor/cli @synor/core

using npm:

npm install --save-dev @synor/cli @synor/core

Configuration

Synor CLI reads config file from one of the following locations:

  • File path passed to --config or -c flag
  • .synorrc.js
  • .synorrc.ts
  • synor.config.js
  • synor.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 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 version 

See 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 drop 

See 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 CLI 

See 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=pending 

See 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 --outOfOrder 

See 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 repair 

See 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 validate 

See code: src/commands/validate.ts