From 0b1fd8a1ec7f7f5eb50327c2df2d8e040a81c14b Mon Sep 17 00:00:00 2001 From: Joel Parker Henderson Date: Tue, 1 Sep 2026 19:01:50 +0100 Subject: [PATCH] Replace tiberius with mssql (maintained fork with security fixes) tiberius currently has three unpatched RUSTSEC advisories (RUSTSEC-2026-0098, -0099, -0104) in its rustls-webpki dependency, a fix PR (prisma/tiberius#419) open since 2026-05-12 with no maintainer response, 11 reachable panic sites from untrusted server input (prisma/tiberius#424, #425), and a maintainer handover request (prisma/tiberius#427) unanswered for 11+ days. This renames the tiberius/tiberius-config Cargo features to mssql/mssql-config and swaps the crate dependency to the mssql fork (https://crates.io/crates/mssql, https://github.com/mssql-rust/mssql-rust), which carries the rustls 0.23 upgrade fixing the three advisories. Verified against the published mssql 1.0.1 crate: cargo check -p refinery-core --features mssql-config cargo check -p refinery-core --features mssql cargo check -p refinery --features mssql-config,toml cargo check -p refinery --tests --features mssql-config,toml cargo check -p refinery_cli --features mssql BREAKING CHANGE: refinery_core::tiberius (public re-export) is now refinery_core::mssql; the tiberius/tiberius-config feature flags are renamed to mssql/mssql-config. refinery is pre-1.0 (0.9.2), so this can ship as a minor version bump. An equally-maintained alternative fork, tiberius-ng (https://github.com/MattJackson/tiberius-ng), also fixes these issues and keeps the tiberius name/API if maintainers prefer that direction instead. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01HmakCYmBF3qUgiW7ctoFJm --- Cargo.lock | 66 ++++++++++--------- README.md | 4 +- refinery/Cargo.toml | 4 +- refinery/tests/{tiberius.rs => mssql.rs} | 46 ++++++------- ...rius_refinery.toml => mssql_refinery.toml} | 0 refinery_cli/Cargo.toml | 2 +- refinery_cli/src/migrate.rs | 2 +- refinery_core/Cargo.toml | 6 +- refinery_core/src/config.rs | 50 +++++++------- refinery_core/src/drivers/config.rs | 14 ++-- refinery_core/src/drivers/mod.rs | 4 +- .../src/drivers/{tiberius.rs => mssql.rs} | 4 +- refinery_core/src/lib.rs | 4 +- 13 files changed, 104 insertions(+), 102 deletions(-) rename refinery/tests/{tiberius.rs => mssql.rs} (95%) rename refinery/tests/{tiberius_refinery.toml => mssql_refinery.toml} (100%) rename refinery_core/src/drivers/{tiberius.rs => mssql.rs} (95%) diff --git a/Cargo.lock b/Cargo.lock index 0d9efd31..e386c00c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,9 +235,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" @@ -1188,6 +1188,31 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mssql" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06baca3b56b4f036554173f63ebe617122d6e134585ad37bfa337c044bfab03" +dependencies = [ + "async-trait", + "asynchronous-codec", + "byteorder", + "bytes", + "cfg-if", + "connection-string", + "encoding_rs", + "enumflags2", + "futures-util", + "num-traits", + "once_cell", + "pin-project-lite", + "pretty-hex", + "thiserror 1.0.69", + "tracing", + "uuid", + "zeroize", +] + [[package]] name = "mysql" version = "26.0.1" @@ -1729,7 +1754,7 @@ dependencies = [ [[package]] name = "refinery" -version = "0.9.0" +version = "0.9.2" dependencies = [ "assert_cmd", "barrel 0.6.6-alpha.0", @@ -1746,13 +1771,14 @@ dependencies = [ [[package]] name = "refinery-core" -version = "0.9.0" +version = "0.9.2" dependencies = [ "async-trait", "barrel 0.6.6-alpha.0", "cfg-if", "futures", "log", + "mssql", "mysql", "mysql_async", "native-tls", @@ -1766,7 +1792,6 @@ dependencies = [ "siphasher", "tempfile", "thiserror 2.0.18", - "tiberius", "time", "tokio", "tokio-postgres", @@ -1790,7 +1815,7 @@ dependencies = [ [[package]] name = "refinery-macros" -version = "0.9.0" +version = "0.9.2" dependencies = [ "heck", "proc-macro2", @@ -1803,7 +1828,7 @@ dependencies = [ [[package]] name = "refinery_cli" -version = "0.9.0" +version = "0.9.2" dependencies = [ "anyhow", "assert_cmd", @@ -2318,29 +2343,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tiberius" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1446cb4198848d1562301a3340424b4f425ef79f35ef9ee034769a9dd92c10d" -dependencies = [ - "async-trait", - "asynchronous-codec", - "byteorder", - "bytes", - "connection-string", - "encoding_rs", - "enumflags2", - "futures-util", - "num-traits", - "once_cell", - "pin-project-lite", - "pretty-hex", - "thiserror 1.0.69", - "tracing", - "uuid", -] - [[package]] name = "time" version = "0.3.47" @@ -2710,9 +2712,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.23.1" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" +checksum = "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812" dependencies = [ "getrandom 0.4.2", "js-sys", diff --git a/README.md b/README.md index 12cd571e..6dcae03c 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/refinery/Cargo.toml b/refinery/Cargo.toml index 7471624c..aef19851 100644 --- a/refinery/Cargo.toml +++ b/refinery/Cargo.toml @@ -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"] diff --git a/refinery/tests/tiberius.rs b/refinery/tests/mssql.rs similarity index 95% rename from refinery/tests/tiberius.rs rename to refinery/tests/mssql.rs index e6dcb8d4..5e11f6fc 100644 --- a/refinery/tests/tiberius.rs +++ b/refinery/tests/mssql.rs @@ -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; @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -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(); @@ -1077,7 +1077,7 @@ mod tiberius { .args([ "migrate", "-c", - "tests/tiberius_refinery.toml", + "tests/mssql_refinery.toml", "-p", "tests/migrations", ]) diff --git a/refinery/tests/tiberius_refinery.toml b/refinery/tests/mssql_refinery.toml similarity index 100% rename from refinery/tests/tiberius_refinery.toml rename to refinery/tests/mssql_refinery.toml diff --git a/refinery_cli/Cargo.toml b/refinery_cli/Cargo.toml index a153cc8d..e68e463e 100644 --- a/refinery_cli/Cargo.toml +++ b/refinery_cli/Cargo.toml @@ -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] diff --git a/refinery_cli/src/migrate.rs b/refinery_cli/src/migrate.rs index cd9557a4..f70f4f8c 100644 --- a/refinery_cli/src/migrate.rs +++ b/refinery_cli/src/migrate.rs @@ -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; diff --git a/refinery_core/Cargo.toml b/refinery_core/Cargo.toml index 51edba25..f6613691 100644 --- a/refinery_core/Cargo.toml +++ b/refinery_core/Cargo.toml @@ -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"] @@ -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 } diff --git a/refinery_core/src/config.rs b/refinery_core/src/config.rs index ca1b0101..6d7bb020 100644 --- a/refinery_core/src/config.rs +++ b/refinery_core/src/config.rs @@ -3,7 +3,7 @@ use crate::Error; #[cfg(any( feature = "postgres", feature = "tokio-postgres", - feature = "tiberius-config" + feature = "mssql-config" ))] use std::borrow::Cow; use std::convert::TryFrom; @@ -104,7 +104,7 @@ impl Config { Ok(config) } - #[cfg(feature = "tiberius-config")] + #[cfg(feature = "mssql-config")] pub fn set_trust_cert(&mut self) { self.main.trust_cert = true; } @@ -115,7 +115,7 @@ impl Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] impl Config { pub fn db_host(&self) -> Option<&str> { @@ -238,7 +238,7 @@ impl TryFrom for Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_host: url.host_str().map(|r| r.to_string()), #[cfg(any( @@ -246,7 +246,7 @@ impl TryFrom for Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_port: url.port().map(|r| r.to_string()), #[cfg(any( @@ -254,7 +254,7 @@ impl TryFrom for Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_user: Some(url.username().to_string()), #[cfg(any( @@ -262,7 +262,7 @@ impl TryFrom for Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_pass: url.password().map(|r| r.to_string()), #[cfg(any( @@ -270,7 +270,7 @@ impl TryFrom for Config { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_name: Some(url.path().trim_start_matches('/').to_string()), #[cfg(any(feature = "postgres", feature = "tokio-postgres"))] @@ -290,7 +290,7 @@ impl TryFrom for Config { )) } }, - #[cfg(feature = "tiberius-config")] + #[cfg(feature = "mssql-config")] trust_cert: url .query_pairs() .collect::, Cow<'_, str>>>() @@ -336,7 +336,7 @@ struct Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_host: Option, #[cfg(any( @@ -344,7 +344,7 @@ struct Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_port: Option, #[cfg(any( @@ -352,7 +352,7 @@ struct Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_user: Option, #[cfg(any( @@ -360,7 +360,7 @@ struct Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_pass: Option, #[cfg(any( @@ -368,13 +368,13 @@ struct Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_name: Option, #[cfg(any(feature = "postgres", feature = "tokio-postgres"))] #[cfg_attr(feature = "serde", serde(default))] use_tls: bool, - #[cfg(feature = "tiberius-config")] + #[cfg(feature = "mssql-config")] #[cfg_attr(feature = "serde", serde(default))] trust_cert: bool, } @@ -390,7 +390,7 @@ impl Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_host: None, #[cfg(any( @@ -398,7 +398,7 @@ impl Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_port: None, #[cfg(any( @@ -406,7 +406,7 @@ impl Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_user: None, #[cfg(any( @@ -414,7 +414,7 @@ impl Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_pass: None, #[cfg(any( @@ -422,12 +422,12 @@ impl Main { feature = "postgres", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] db_name: None, #[cfg(any(feature = "postgres", feature = "tokio-postgres"))] use_tls: false, - #[cfg(feature = "tiberius-config")] + #[cfg(feature = "mssql-config")] trust_cert: false, } } @@ -464,12 +464,12 @@ pub(crate) fn build_db_url(name: &str, config: &Config) -> String { url } -#[cfg(feature = "tiberius-config")] -impl TryFrom<&Config> for tiberius::Config { +#[cfg(feature = "mssql-config")] +impl TryFrom<&Config> for mssql::Config { type Error = Error; fn try_from(config: &Config) -> Result { - let mut tconfig = tiberius::Config::new(); + let mut tconfig = mssql::Config::new(); if let Some(host) = &config.main.db_host { tconfig.host(host); } @@ -494,7 +494,7 @@ impl TryFrom<&Config> for tiberius::Config { if config.main.trust_cert { tconfig.trust_cert(); } - tconfig.authentication(tiberius::AuthMethod::sql_server(user, pass)); + tconfig.authentication(mssql::AuthMethod::sql_server(user, pass)); Ok(tconfig) } diff --git a/refinery_core/src/drivers/config.rs b/refinery_core/src/drivers/config.rs index d7d7192d..cb5ed574 100644 --- a/refinery_core/src/drivers/config.rs +++ b/refinery_core/src/drivers/config.rs @@ -8,7 +8,7 @@ use crate::Migration; feature = "rusqlite", feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] use crate::{ config::ConfigDbType, @@ -124,7 +124,7 @@ macro_rules! with_connection { } } ConfigDbType::Mssql => { - panic!("tried to synchronously migrate from config for a mssql database, but tiberius is an async driver"); + panic!("tried to synchronously migrate from config for a mssql database, but mssql is an async driver"); } } } @@ -133,7 +133,7 @@ macro_rules! with_connection { #[cfg(any( feature = "tokio-postgres", feature = "mysql_async", - feature = "tiberius-config" + feature = "mssql-config" ))] macro_rules! with_connection_async { ($config: ident, $op: expr) => { @@ -226,8 +226,8 @@ macro_rules! with_connection_async { } ConfigDbType::Mssql => { cfg_if::cfg_if! { - if #[cfg(feature = "tiberius-config")] { - use tiberius::{Client, Config}; + if #[cfg(feature = "mssql-config")] { + use mssql::{Client, Config}; use tokio::net::TcpStream; use tokio_util::compat::TokioAsyncWriteCompatExt; use std::convert::TryInto; @@ -242,7 +242,7 @@ macro_rules! with_connection_async { $op(client).await } else { - panic!("tried to migrate async from config for a mssql database, but tiberius-config feature was not enabled!"); + panic!("tried to migrate async from config for a mssql database, but mssql-config feature was not enabled!"); } } } @@ -311,7 +311,7 @@ impl crate::Migrate for Config { #[cfg(any( feature = "mysql_async", feature = "tokio-postgres", - feature = "tiberius-config" + feature = "mssql-config" ))] #[async_trait] impl crate::AsyncMigrate for Config { diff --git a/refinery_core/src/drivers/mod.rs b/refinery_core/src/drivers/mod.rs index 12688c67..4c3a3f18 100644 --- a/refinery_core/src/drivers/mod.rs +++ b/refinery_core/src/drivers/mod.rs @@ -13,8 +13,8 @@ pub mod postgres; #[cfg(feature = "mysql")] pub mod mysql; -#[cfg(feature = "tiberius")] -pub mod tiberius; +#[cfg(feature = "mssql")] +pub mod mssql; #[cfg(feature = "config")] mod config; diff --git a/refinery_core/src/drivers/tiberius.rs b/refinery_core/src/drivers/mssql.rs similarity index 95% rename from refinery_core/src/drivers/tiberius.rs rename to refinery_core/src/drivers/mssql.rs index 4095f1b7..6169c36d 100644 --- a/refinery_core/src/drivers/tiberius.rs +++ b/refinery_core/src/drivers/mssql.rs @@ -7,7 +7,7 @@ use futures::{ io::{AsyncRead, AsyncWrite}, TryStreamExt, }; -use tiberius::{error::Error, Client, QueryItem}; +use mssql::{error::Error, Client, QueryItem}; use time::format_description::well_known::Rfc3339; use time::OffsetDateTime; @@ -51,7 +51,7 @@ where &mut self, queries: T, ) -> Result { - // Tiberius doesn't support transactions, see https://github.com/prisma/tiberius/issues/28 + // mssql doesn't support transactions (inherited from tiberius), see https://github.com/prisma/tiberius/issues/28 self.simple_query("BEGIN TRAN T1;").await?; let mut count = 0; for query in queries { diff --git a/refinery_core/src/lib.rs b/refinery_core/src/lib.rs index a6230f84..9698222e 100644 --- a/refinery_core/src/lib.rs +++ b/refinery_core/src/lib.rs @@ -29,5 +29,5 @@ pub use tokio_postgres; #[cfg(feature = "mysql_async")] pub use mysql_async; -#[cfg(feature = "tiberius")] -pub use tiberius; +#[cfg(feature = "mssql")] +pub use mssql;