Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 34 additions & 32 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ Powerful SQL migration toolkit for Rust.
Refinery strives to make running migrations for different databases as easy as possible.
It works by running your migrations on a provided database connection, either by embedding them on your Rust code, or via the [refinery_cli].

Currently [`postgres`](https://crates.io/crates/postgres), [`tokio-postgres`](https://crates.io/crates/tokio-postgres) , [`mysql`](https://crates.io/crates/mysql), [`mysql_async`](https://crates.io/crates/mysql_async), [`rusqlite`](https://crates.io/crates/rusqlite) and [`tiberius`](https://github.com/prisma/tiberius) are supported.
If you are using a driver that is not yet supported, namely [`SQLx`](https://github.com/launchbadge/sqlx) you can run migrations providing a [`Config`](https://docs.rs/refinery/latest/refinery/config/struct.Config.html) instead of the connection type, as `Config` impl's `Migrate`. You will still need to provide the `postgres`/`mysql`/`rusqlite`/`tiberius` driver as a feature for [`Runner::run`](https://docs.rs/refinery/latest/refinery/struct.Runner.html#method.run) and `tokio-postgres`/`mysql_async` for [`Runner::run_async`](https://docs.rs/refinery/latest/refinery/struct.Runner.html#method.run_async).
Currently [`postgres`](https://crates.io/crates/postgres), [`tokio-postgres`](https://crates.io/crates/tokio-postgres) , [`mysql`](https://crates.io/crates/mysql), [`mysql_async`](https://crates.io/crates/mysql_async), [`rusqlite`](https://crates.io/crates/rusqlite) and [`mssql`](https://github.com/mssql-rust/mssql-rust) (a maintained fork of [`tiberius`](https://github.com/prisma/tiberius)) are supported.
If you are using a driver that is not yet supported, namely [`SQLx`](https://github.com/launchbadge/sqlx) you can run migrations providing a [`Config`](https://docs.rs/refinery/latest/refinery/config/struct.Config.html) instead of the connection type, as `Config` impl's `Migrate`. You will still need to provide the `postgres`/`mysql`/`rusqlite`/`mssql` driver as a feature for [`Runner::run`](https://docs.rs/refinery/latest/refinery/struct.Runner.html#method.run) and `tokio-postgres`/`mysql_async` for [`Runner::run_async`](https://docs.rs/refinery/latest/refinery/struct.Runner.html#method.run_async).
`refinery` works best with [`Barrel`](https://crates.io/crates/barrel) but you can also have your migrations in `.sql` files or use any other Rust crate for schema generation.

## Usage
Expand Down
4 changes: 2 additions & 2 deletions refinery/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ tokio-postgres-tls = ["tokio-postgres", "refinery-core/tokio-postgres-tls"]
tokio-postgres = ["refinery-core/tokio-postgres"]
tokio-postgres-rustls = ["tokio-postgres", "refinery-core/tokio-postgres-rustls"]
mysql_async = ["refinery-core/mysql_async", "config"]
tiberius = ["refinery-core/tiberius", "config"]
tiberius-config = ["refinery-core/tiberius", "refinery-core/tiberius-config", "config"]
mssql = ["refinery-core/mssql", "config"]
mssql-config = ["refinery-core/mssql", "refinery-core/mssql-config", "config"]
serde = ["refinery-core/serde"]
toml = ["refinery-core/toml"]
enums = ["refinery-macros/enums"]
Expand Down
46 changes: 23 additions & 23 deletions refinery/tests/tiberius.rs → refinery/tests/mssql.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use barrel::backend::MsSql as Sql;

#[cfg(feature = "tiberius-config")]
mod tiberius {
#[cfg(feature = "mssql-config")]
mod mssql_tests {
use assert_cmd::prelude::*;
use futures::FutureExt;
use predicates::str::contains;
use refinery::{
config::Config, embed_migrations, error::Kind, AsyncMigrate, Migration, Runner, Target,
};
use refinery_core::tiberius::{self, Config as TConfig};
use refinery_core::mssql::{self, Config as TConfig};
use std::convert::TryInto;
use std::panic::AssertUnwindSafe;
use std::process::Command;
Expand Down Expand Up @@ -79,7 +79,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -116,7 +116,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -167,7 +167,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -219,7 +219,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -281,7 +281,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -321,7 +321,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -362,7 +362,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -408,7 +408,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -454,7 +454,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -501,7 +501,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -550,7 +550,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -587,7 +587,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -625,7 +625,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -674,7 +674,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -720,7 +720,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -872,7 +872,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -923,7 +923,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -975,7 +975,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -1029,7 +1029,7 @@ mod tiberius {
.unwrap();
let mut tconfig: TConfig = (&config).try_into().unwrap();
tconfig.trust_cert();
let mut client = tiberius::Client::connect(tconfig, tcp.compat_write())
let mut client = mssql::Client::connect(tconfig, tcp.compat_write())
.await
.unwrap();

Expand Down Expand Up @@ -1077,7 +1077,7 @@ mod tiberius {
.args([
"migrate",
"-c",
"tests/tiberius_refinery.toml",
"tests/mssql_refinery.toml",
"-p",
"tests/migrations",
])
Expand Down
2 changes: 1 addition & 1 deletion refinery_cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ postgresql = ["refinery-core/postgres-tls"]
mysql = ["refinery-core/mysql"]
sqlite = ["refinery-core/rusqlite"]
sqlite-bundled = ["sqlite", "refinery-core/rusqlite-bundled"]
mssql = ["refinery-core/tiberius-config", "tokio"]
mssql = ["refinery-core/mssql-config", "tokio"]
int8-versions = ["refinery-core/int8-versions"]

[dependencies]
Expand Down
2 changes: 1 addition & 1 deletion refinery_cli/src/migrate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ fn run_migrations(
match config.db_type() {
ConfigDbType::Mssql => {
cfg_if::cfg_if! {
// tiberius is an async driver so we spawn tokio runtime and run the migrations
// mssql is an async driver so we spawn tokio runtime and run the migrations
if #[cfg(feature = "mssql")] {
use tokio::runtime::Builder;

Expand Down
6 changes: 3 additions & 3 deletions refinery_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ postgres-tls = ["postgres", "dep:postgres-native-tls", "tls", "config"]
rusqlite = ["dep:rusqlite", "config"]
rusqlite-bundled = ["rusqlite", "rusqlite/bundled", "config"]
serde = ["dep:serde", "time/serde"]
tiberius = ["dep:tiberius", "dep:futures", "dep:tokio", "tokio/net"]
tiberius-config = ["tiberius", "dep:tokio-util", "dep:serde", "config"]
mssql = ["dep:mssql", "dep:futures", "dep:tokio", "tokio/net"]
mssql-config = ["mssql", "dep:tokio-util", "dep:serde", "config"]
tls = ["dep:native-tls"]
tokio-postgres = ["dep:tokio-postgres", "dep:tokio", "tokio/rt"]
tokio-postgres-tls = ["tokio-postgres", "postgres-tls", "config"]
Expand All @@ -44,7 +44,7 @@ postgres-native-tls = { version = "0.5", optional = true }
tokio-postgres = { version = ">= 0.5, <= 0.7", optional = true }
mysql = { version = ">= 21.0.0, <= 28", optional = true, default-features = false, features = ["minimal"] }
mysql_async = { version = ">= 0.28, <= 0.37", optional = true, default-features = false, features = ["minimal"] }
tiberius = { version = ">= 0.7, <= 0.12", optional = true, default-features = false }
mssql = { version = ">= 1.0, < 2.0", optional = true, default-features = false }
tokio = { version = "1.0", optional = true }
futures = { version = "0.3.16", optional = true, features = ["async-await"] }
tokio-util = { version = "0.7.7", features = ["compat"], optional = true }
Expand Down
Loading
Loading