fly-migrate-core

Crates.iofly-migrate-core
lib.rsfly-migrate-core
version0.2.1
sourcesrc
created_at2024-03-23 13:17:45.153239
updated_at2024-03-23 13:27:58.04847
descriptionCore library for fly-migrate, a database migration tool.
homepage
repositoryhttps://github.com/mjhoy/fly
max_upload_size
id1183530
size24,894
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