From 992b190861df11211f7af0a77590301a72ac410d Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Wed, 5 Nov 2025 15:25:23 -0800 Subject: [PATCH] refactor: tokenserver-mysql models/pool/migrations -> db Issue STOR-405 --- Cargo.lock | 20 +++++++++++++++++ Cargo.toml | 2 +- tokenserver-db/Cargo.toml | 2 ++ tokenserver-db/src/lib.rs | 12 +++------- tokenserver-mysql/Cargo.toml | 22 +++++++++++++++++++ .../2021-07-16-001122_init/down.sql | 0 .../migrations/2021-07-16-001122_init/up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../2021-09-30-142746_add_indexes/down.sql | 0 .../2021-09-30-142746_add_indexes/up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../up.sql | 0 .../down.sql | 0 .../2021-12-22-160451_remove_services/up.sql | 0 .../src/db/db_impl.rs | 0 tokenserver-mysql/src/db/mod.rs | 1 + tokenserver-mysql/src/lib.rs | 5 +++++ .../src/pool.rs | 0 25 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 tokenserver-mysql/Cargo.toml rename {tokenserver-db => tokenserver-mysql}/migrations/2021-07-16-001122_init/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-07-16-001122_init/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-08-03-234845_populate_services/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-08-03-234845_populate_services/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142643_remove_foreign_key_constraints/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142643_remove_foreign_key_constraints/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142654_remove_node_defaults/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142654_remove_node_defaults/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142746_add_indexes/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-142746_add_indexes/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-144043_remove_nodes_service_key/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-144043_remove_nodes_service_key/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-144225_remove_users_nodeid_key/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-09-30-144225_remove_users_nodeid_key/up.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-12-22-160451_remove_services/down.sql (100%) rename {tokenserver-db => tokenserver-mysql}/migrations/2021-12-22-160451_remove_services/up.sql (100%) rename tokenserver-db/src/models.rs => tokenserver-mysql/src/db/db_impl.rs (100%) create mode 100644 tokenserver-mysql/src/db/mod.rs create mode 100644 tokenserver-mysql/src/lib.rs rename {tokenserver-db => tokenserver-mysql}/src/pool.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 1a41435b..482bdc68 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/Cargo.toml b/Cargo.toml index 0c9e423c..7b0bfeb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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"] diff --git a/tokenserver-db/Cargo.toml b/tokenserver-db/Cargo.toml index 3ac6c165..fdb49907 100644 --- a/tokenserver-db/Cargo.toml +++ b/tokenserver-db/Cargo.toml @@ -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'] diff --git a/tokenserver-db/src/lib.rs b/tokenserver-db/src/lib.rs index 211fe7bc..0f001ace 100644 --- a/tokenserver-db/src/lib.rs +++ b/tokenserver-db/src/lib.rs @@ -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, diff --git a/tokenserver-mysql/Cargo.toml b/tokenserver-mysql/Cargo.toml new file mode 100644 index 00000000..fb5e6e88 --- /dev/null +++ b/tokenserver-mysql/Cargo.toml @@ -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"] } diff --git a/tokenserver-db/migrations/2021-07-16-001122_init/down.sql b/tokenserver-mysql/migrations/2021-07-16-001122_init/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-07-16-001122_init/down.sql rename to tokenserver-mysql/migrations/2021-07-16-001122_init/down.sql diff --git a/tokenserver-db/migrations/2021-07-16-001122_init/up.sql b/tokenserver-mysql/migrations/2021-07-16-001122_init/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-07-16-001122_init/up.sql rename to tokenserver-mysql/migrations/2021-07-16-001122_init/up.sql diff --git a/tokenserver-db/migrations/2021-08-03-234845_populate_services/down.sql b/tokenserver-mysql/migrations/2021-08-03-234845_populate_services/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-08-03-234845_populate_services/down.sql rename to tokenserver-mysql/migrations/2021-08-03-234845_populate_services/down.sql diff --git a/tokenserver-db/migrations/2021-08-03-234845_populate_services/up.sql b/tokenserver-mysql/migrations/2021-08-03-234845_populate_services/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-08-03-234845_populate_services/up.sql rename to tokenserver-mysql/migrations/2021-08-03-234845_populate_services/up.sql diff --git a/tokenserver-db/migrations/2021-09-30-142643_remove_foreign_key_constraints/down.sql b/tokenserver-mysql/migrations/2021-09-30-142643_remove_foreign_key_constraints/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142643_remove_foreign_key_constraints/down.sql rename to tokenserver-mysql/migrations/2021-09-30-142643_remove_foreign_key_constraints/down.sql diff --git a/tokenserver-db/migrations/2021-09-30-142643_remove_foreign_key_constraints/up.sql b/tokenserver-mysql/migrations/2021-09-30-142643_remove_foreign_key_constraints/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142643_remove_foreign_key_constraints/up.sql rename to tokenserver-mysql/migrations/2021-09-30-142643_remove_foreign_key_constraints/up.sql diff --git a/tokenserver-db/migrations/2021-09-30-142654_remove_node_defaults/down.sql b/tokenserver-mysql/migrations/2021-09-30-142654_remove_node_defaults/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142654_remove_node_defaults/down.sql rename to tokenserver-mysql/migrations/2021-09-30-142654_remove_node_defaults/down.sql diff --git a/tokenserver-db/migrations/2021-09-30-142654_remove_node_defaults/up.sql b/tokenserver-mysql/migrations/2021-09-30-142654_remove_node_defaults/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142654_remove_node_defaults/up.sql rename to tokenserver-mysql/migrations/2021-09-30-142654_remove_node_defaults/up.sql diff --git a/tokenserver-db/migrations/2021-09-30-142746_add_indexes/down.sql b/tokenserver-mysql/migrations/2021-09-30-142746_add_indexes/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142746_add_indexes/down.sql rename to tokenserver-mysql/migrations/2021-09-30-142746_add_indexes/down.sql diff --git a/tokenserver-db/migrations/2021-09-30-142746_add_indexes/up.sql b/tokenserver-mysql/migrations/2021-09-30-142746_add_indexes/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-142746_add_indexes/up.sql rename to tokenserver-mysql/migrations/2021-09-30-142746_add_indexes/up.sql diff --git a/tokenserver-db/migrations/2021-09-30-144043_remove_nodes_service_key/down.sql b/tokenserver-mysql/migrations/2021-09-30-144043_remove_nodes_service_key/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-144043_remove_nodes_service_key/down.sql rename to tokenserver-mysql/migrations/2021-09-30-144043_remove_nodes_service_key/down.sql diff --git a/tokenserver-db/migrations/2021-09-30-144043_remove_nodes_service_key/up.sql b/tokenserver-mysql/migrations/2021-09-30-144043_remove_nodes_service_key/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-144043_remove_nodes_service_key/up.sql rename to tokenserver-mysql/migrations/2021-09-30-144043_remove_nodes_service_key/up.sql diff --git a/tokenserver-db/migrations/2021-09-30-144225_remove_users_nodeid_key/down.sql b/tokenserver-mysql/migrations/2021-09-30-144225_remove_users_nodeid_key/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-144225_remove_users_nodeid_key/down.sql rename to tokenserver-mysql/migrations/2021-09-30-144225_remove_users_nodeid_key/down.sql diff --git a/tokenserver-db/migrations/2021-09-30-144225_remove_users_nodeid_key/up.sql b/tokenserver-mysql/migrations/2021-09-30-144225_remove_users_nodeid_key/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-09-30-144225_remove_users_nodeid_key/up.sql rename to tokenserver-mysql/migrations/2021-09-30-144225_remove_users_nodeid_key/up.sql diff --git a/tokenserver-db/migrations/2021-12-22-160451_remove_services/down.sql b/tokenserver-mysql/migrations/2021-12-22-160451_remove_services/down.sql similarity index 100% rename from tokenserver-db/migrations/2021-12-22-160451_remove_services/down.sql rename to tokenserver-mysql/migrations/2021-12-22-160451_remove_services/down.sql diff --git a/tokenserver-db/migrations/2021-12-22-160451_remove_services/up.sql b/tokenserver-mysql/migrations/2021-12-22-160451_remove_services/up.sql similarity index 100% rename from tokenserver-db/migrations/2021-12-22-160451_remove_services/up.sql rename to tokenserver-mysql/migrations/2021-12-22-160451_remove_services/up.sql diff --git a/tokenserver-db/src/models.rs b/tokenserver-mysql/src/db/db_impl.rs similarity index 100% rename from tokenserver-db/src/models.rs rename to tokenserver-mysql/src/db/db_impl.rs diff --git a/tokenserver-mysql/src/db/mod.rs b/tokenserver-mysql/src/db/mod.rs new file mode 100644 index 00000000..d907f25f --- /dev/null +++ b/tokenserver-mysql/src/db/mod.rs @@ -0,0 +1 @@ +mod db_impl; diff --git a/tokenserver-mysql/src/lib.rs b/tokenserver-mysql/src/lib.rs new file mode 100644 index 00000000..e956382e --- /dev/null +++ b/tokenserver-mysql/src/lib.rs @@ -0,0 +1,5 @@ +mod db; +mod pool; + +pub use db::TokenserverDb; +pub use pool::TokenserverPool; diff --git a/tokenserver-db/src/pool.rs b/tokenserver-mysql/src/pool.rs similarity index 100% rename from tokenserver-db/src/pool.rs rename to tokenserver-mysql/src/pool.rs