refactor: tokenserver-mysql models/pool/migrations -> db

Issue STOR-405
This commit is contained in:
Philip Jenvey 2025-11-05 15:25:23 -08:00
parent 831e89347b
commit 992b190861
No known key found for this signature in database
GPG Key ID: 5B9F83DE4F7EB7FA
25 changed files with 54 additions and 10 deletions

20
Cargo.lock generated
View File

@ -3706,6 +3706,7 @@ dependencies = [
"tokenserver-common",
"tokenserver-db-common",
"tokenserver-db-postgres",
"tokenserver-mysql",
"tokenserver-settings",
"tokio",
"url",
@ -3749,6 +3750,25 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokenserver-mysql"
version = "0.21.1"
dependencies = [
"async-trait",
"deadpool",
"diesel",
"diesel-async",
"diesel_logger",
"diesel_migrations",
"http 1.3.1",
"syncserver-common",
"syncserver-db-common",
"tokenserver-common",
"tokenserver-db-common",
"tokenserver-settings",
"tokio",
]
[[package]]
name = "tokenserver-settings"
version = "0.21.1"

View File

@ -15,7 +15,7 @@ members = [
"tokenserver-settings",
"syncserver",
"tokenserver-db-postgres",
"tokenserver-db-common", "syncstorage-postgres",
"tokenserver-db-common", "syncstorage-postgres", "tokenserver-mysql",
]
default-members = ["syncserver"]

View File

@ -17,6 +17,7 @@ syncserver-common = { path = "../syncserver-common" }
syncserver-db-common = { path = "../syncserver-db-common" }
tokenserver-common = { path = "../tokenserver-common" }
tokenserver-db-common = { path = "../tokenserver-db-common" }
tokenserver-mysql = { path = "../tokenserver-mysql", optional = true }
tokenserver-db-postgres = { path = "../tokenserver-db-postgres", optional = true }
tokenserver-settings = { path = "../tokenserver-settings" }
tokio = { workspace = true, features = ["macros", "sync"] }
@ -28,4 +29,5 @@ env_logger.workspace = true
syncserver-settings = { path = "../syncserver-settings" }
[features]
mysql = ['tokenserver-mysql']
postgres = ['tokenserver-db-postgres']

View File

@ -1,16 +1,9 @@
extern crate diesel;
extern crate diesel_migrations;
pub mod mock;
mod models;
mod pool;
use url::Url;
pub use models::TokenserverDb;
pub use pool::TokenserverPool;
use syncserver_common::Metrics;
pub use tokenserver_db_common::{params, results, Db, DbError, DbPool};
pub use tokenserver_db_common::{Db, DbError, DbPool};
use tokenserver_settings::Settings;
pub fn pool_from_settings(
@ -21,7 +14,8 @@ pub fn pool_from_settings(
let url = Url::parse(&settings.database_url)
.map_err(|e| DbError::internal(format!("Invalid SYNC_TOKENSERVER__DATABASE_URL: {e}")))?;
Ok(match url.scheme() {
"mysql" => Box::new(crate::pool::TokenserverPool::new(
#[cfg(feature = "mysql")]
"mysql" => Box::new(tokenserver_mysql::TokenserverPool::new(
settings,
metrics,
use_test_transactions,

View File

@ -0,0 +1,22 @@
[package]
name = "tokenserver-mysql"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
[dependencies]
async-trait.workspace = true
deadpool.workspace = true
diesel.workspace = true
diesel-async.workspace = true
diesel_logger.workspace = true
diesel_migrations.workspace = true
http.workspace = true
syncserver-common = { path = "../syncserver-common" }
syncserver-db-common = { path = "../syncserver-db-common" }
tokenserver-common = { path = "../tokenserver-common" }
tokenserver-db-common = { path = "../tokenserver-db-common" }
tokenserver-settings = { path = "../tokenserver-settings" }
tokio = { workspace = true, features = ["macros", "sync"] }

View File

@ -0,0 +1 @@
mod db_impl;

View File

@ -0,0 +1,5 @@
mod db;
mod pool;
pub use db::TokenserverDb;
pub use pool::TokenserverPool;