emigrate/packages/cli
2024-01-26 16:09:49 +01:00
..
src fix(reporter-default): don't dim decimal points in durations in the default reporter 2024-01-26 16:09:49 +01:00
CHANGELOG.md chore(release): version packages 2024-01-23 11:44:05 +01:00
package.json chore(release): version packages 2024-01-23 11:44:05 +01:00
README.md feat(cli): improve the "up" commands --from and --to options 2024-01-26 09:13:03 +01:00
tsconfig.json refactor(cli): rename the emigrate package to @emigrate/cli to be more in line with other tools 2023-11-15 14:42:10 +01:00

@emigrate/cli

Emigrate is a tool for managing database migrations. It is designed to be simple yet support advanced setups, modular and extensible.

📖 Read the documentation for more information!

Installation

Install the Emigrate CLI in your project:

npm install @emigrate/cli
# or
pnpm add @emigrate/cli
# or
yarn add @emigrate/cli
# or
bun add @emigrate/cli

Usage

Usage: emigrate up [options]

Run all pending migrations

Options:

  -h, --help              Show this help message and exit

  -d, --directory <path>  The directory where the migration files are located (required)

  -i, --import <module>   Additional modules/packages to import before running the migrations (can be specified multiple times)
                          For example if you want to use Dotenv to load environment variables or when using TypeScript

  -s, --storage <name>    The storage to use for where to store the migration history (required)

  -p, --plugin <name>     The plugin(s) to use (can be specified multiple times)

  -r, --reporter <name>   The reporter to use for reporting the migration progress

  -l, --limit <count>     Limit the number of migrations to run

  -f, --from <name/path>  Start running migrations from the given migration name or relative file path to a migration file,
                          the given name or path needs to exist. The same migration and those after it lexicographically will be run

  -t, --to <name/path>    Skip migrations after the given migration name or relative file path to a migration file,
                          the given name or path needs to exist. The same migration and those before it lexicographically will be run

  --dry                   List the pending migrations that would be run without actually running them

  --color                 Force color output (this option is passed to the reporter)

  --no-color              Disable color output (this option is passed to the reporter)

  --no-execution          Mark the migrations as executed and successful without actually running them,
                          which is useful if you want to mark migrations as successful after running them manually

  --abort-respite <sec>   The number of seconds to wait before abandoning running migrations after the command has been aborted (default: 10)

Examples:

  emigrate up --directory src/migrations -s fs
  emigrate up -d ./migrations --storage @emigrate/mysql
  emigrate up -d src/migrations -s postgres -r json --dry
  emigrate up -d ./migrations -s mysql --import dotenv/config
  emigrate up --limit 1
  emigrate up --to 20231122120529381_some_migration_file.js
  emigrate up --to 20231122120529381_some_migration_file.js --no-execution

Examples

Create a new migration:

npx emigrate new -d migrations create some fancy table
# or
pnpm emigrate new -d migrations create some fancy table
# or
yarn emigrate new -d migrations create some fancy table
# or
bunx --bun emigrate new -d migrations create some fancy table

Will create a new empty JavaScript migration file with the name "YYYYMMDDHHmmssuuu_create_some_fancy_table.js" in the migrations directory.