fly-migrate

Crates.iofly-migrate
lib.rsfly-migrate
version0.2.1
sourcesrc
created_at2023-03-29 12:34:10.308218
updated_at2024-03-23 13:29:14.252288
descriptionA simple CLI database migration tool for postgresql.
homepage
repositoryhttps://github.com/mjhoy/fly
max_upload_size
id824078
size57,135
Mikey Hoy (mjhoy)

documentation

README

fly

A simple CLI database migration tool for postgresql. Very much work-in-progress at the moment.

Installing

Available on crates.io as fly-migrate:

$ cargo install fly-migrate
# installs `fly` to `~/.cargo/bin`:
$ fly --help

Configuration

Fly expects the following env variables set. It will also use dotenv to look in a .env file.

  • MIGRATE_DIR: Path to your migrations (e.g., db/migrate).
  • PG_USER
  • PG_PASSWORD (optional)
  • PG_HOST
  • PG_PORT
  • PG_DB

You can use the example-env subcommand to output an example .env file to get started:

fly example-env >> .env

You can also directly set a PG_CONNECTION_STRING instead of the individual PG_ variables.

Subcommands

  • up: Applies all pending migrations.
  • down: Rolls back the last migration.
  • status: Prints the current status of the database.
  • new: Creates a new migration file.
  • example-env: Outputs an example .env file.

Development

Testing

Testing fly requires a postgres connection. You should set the following env variables:

TEST_PG_HOST=host
TEST_PG_PORT=port
TEST_PG_USER=user

You can put these in a .env.test in the root directory.

Commit count: 32

cargo fmt