migra/README.md

70 lines
1.9 KiB
Markdown

# Migra
[![CI](https://github.com/pleshevskiy/migra/actions/workflows/rust.yml/badge.svg?branch=main)](https://github.com/pleshevskiy/migra/actions/workflows/rust.yml)
[![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance/)
[![Crates.io](https://img.shields.io/crates/v/migra-cli)](https://crates.io/crates/migra-cli)
![Crates.io](https://img.shields.io/crates/l/migra-cli)
Simple SQL migration manager for your project.
### Install
```bash
cargo install migra-cli
```
If you want to use dotenv for configure migra cli, just run the following in your terminal.
```bash
cargo install migra-cli --features dotenv
```
Each supported database is located in separate features with a similar name.
The default is `postgres`.
For example, if you only want to work with `mysql`, you need to disable `postgres` and enable `mysql`.
```bash
cargo install migra-cli --no-default-features --features mysql
```
### Usage
A few steps to get you started
1. Initialize migra configuration (Optional)
```bash
migra init
```
2. Make your first migration
```bash
migra make initial_migration
```
3. Check applied and pending migrations
```bash
migra ls
```
4. Upgrade your database
```bash
migra up
```
For more information about the commands, simply run `migra help`
### Supported databases
| Database | Feature | Default |
|----------|--------------|:------------------:|
| Postgres | postgres | :heavy_check_mark: |
| MySQL | mysql | :x: |
| Sqlite | sqlite | :x: |
## License
Licensed under either of these:
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE_APACHE) or
https://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE_MIT) or
https://opensource.org/licenses/MIT)