2 releases
0.2.1 | Mar 23, 2024 |
---|---|
0.2.0 | Mar 23, 2024 |
#14 in #fly
Used in fly-migrate
25KB
662 lines
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.
Dependencies
~7–16MB
~223K SLoC