Skip to content

ffimnsr/midas-rs

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Midas (cargo-migrate)

Crates.io Package Crates.io Downloads License Github Workflow Status

So Midas, king of Lydia, swelled at first with pride when he found he could transform everything he touched to gold; but when he beheld his food grow rigid and his drink harden into golden ice then he understood that this gift was a bane and in his loathing for gold, cursed his prayer.

  • from In Rufinem, Claudian

Do painless migrations.

Supported Database

Currently, the only supported database is Postgres.

Usage

Using CLI

Here is a sample command line usage of midas.

midas --database postgres://postgres@localhost:5432/postgres --source migrations up

or you could also use the cargo migrate to integrate it on your cargo workflow.

The command will execute all special (up) SQL migrations files to the database.
Here are the available subcommands:

create    Creates a timestamped migration file
down      Remove all applied migrations
drop      Drops everything inside the database
redo      Redo the last migration
revert    Reverts the last migration
init      Setups and creates initial file directory and env
status    Checks the status of the migration
up        Apply all non-applied migrations

For more info see --help.

Installation

If you're into Rust then you can use cargo to install.

  • The minimum supported version of Rust is 1.37.0.
cargo install midas

Binary for different OS distribution can be downloaded here.

What's in the Roadmap

  • TOML DSL for creating database objects
  • Setup multiple drivers (e.g. MySQL, Sqlite3, etc.)
  • Add functionality for setup and drop commands.
  • More to come.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Do painless migrations. Available only for Postgres 9.6+.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages