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][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. [fly-migrate]: https://crates.io/crates/fly-migrate ## 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.