From 2c72b2203ce4810435a0e484e20f65a0127e52d8 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Sun, 13 Oct 2024 01:46:28 +0200 Subject: [PATCH] Extract `crates_io_database` crate --- Cargo.lock | 9 +++++++++ Cargo.toml | 1 + crates/crates_io_database/Cargo.toml | 12 ++++++++++++ crates/crates_io_database/src/lib.rs | 1 + {src => crates/crates_io_database/src}/schema.patch | 10 +++++----- {src => crates/crates_io_database/src}/schema.rs | 0 diesel.toml | 4 ++-- src/lib.rs | 2 +- 8 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 crates/crates_io_database/Cargo.toml create mode 100644 crates/crates_io_database/src/lib.rs rename {src => crates/crates_io_database/src}/schema.patch (96%) rename {src => crates/crates_io_database/src}/schema.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index a46ce484c09..4d66864f0ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1001,6 +1001,7 @@ dependencies = [ "clap", "cookie", "crates_io_cdn_logs", + "crates_io_database", "crates_io_env_vars", "crates_io_github", "crates_io_index", @@ -1090,6 +1091,14 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "crates_io_database" +version = "0.0.0" +dependencies = [ + "diesel", + "diesel_full_text_search", +] + [[package]] name = "crates_io_env_vars" version = "0.0.0" diff --git a/Cargo.toml b/Cargo.toml index 3fee076c448..787ae843fa4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,7 @@ base64 = "=0.22.1" bigdecimal = { version = "=0.4.5", features = ["serde"] } cargo-manifest = "=0.15.2" crates_io_cdn_logs = { path = "crates/crates_io_cdn_logs" } +crates_io_database = { path = "crates/crates_io_database" } crates_io_env_vars = { path = "crates/crates_io_env_vars" } crates_io_github = { path = "crates/crates_io_github" } crates_io_index = { path = "crates/crates_io_index" } diff --git a/crates/crates_io_database/Cargo.toml b/crates/crates_io_database/Cargo.toml new file mode 100644 index 00000000000..7a28548b1fe --- /dev/null +++ b/crates/crates_io_database/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "crates_io_database" +version = "0.0.0" +license = "MIT OR Apache-2.0" +edition = "2021" + +[lints] +workspace = true + +[dependencies] +diesel = "=2.2.4" +diesel_full_text_search = "=2.2.0" diff --git a/crates/crates_io_database/src/lib.rs b/crates/crates_io_database/src/lib.rs new file mode 100644 index 00000000000..1ce7e176664 --- /dev/null +++ b/crates/crates_io_database/src/lib.rs @@ -0,0 +1 @@ +pub mod schema; diff --git a/src/schema.patch b/crates/crates_io_database/src/schema.patch similarity index 96% rename from src/schema.patch rename to crates/crates_io_database/src/schema.patch index 47306b03f79..1aa7e443619 100644 --- a/src/schema.patch +++ b/crates/crates_io_database/src/schema.patch @@ -1,5 +1,5 @@ ---- src/schema.rs.orig 2024-03-04 10:34:35 -+++ src/schema.rs 2024-03-04 10:33:35 +--- crates/crates_io_database/schema.rs.orig 2024-03-04 10:34:35 ++++ crates/crates_io_database/schema.rs 2024-03-04 10:33:35 @@ -21,9 +21,7 @@ /// The `pg_catalog.tsvector` SQL type /// @@ -9,7 +9,7 @@ - pub struct Tsvector; + pub use diesel_full_text_search::Tsvector; } - + diesel::table! { @@ -74,9 +72,9 @@ /// (Automatically generated by Diesel.) @@ -35,7 +35,7 @@ - path -> Ltree, } } - + @@ -476,7 +468,7 @@ /// Its SQL type is `Array>`. /// @@ -47,7 +47,7 @@ /// Its SQL type is `Nullable`. @@ -703,6 +695,24 @@ } - + diesel::table! { + /// Representation of the `recent_crate_downloads` view. + /// diff --git a/src/schema.rs b/crates/crates_io_database/src/schema.rs similarity index 100% rename from src/schema.rs rename to crates/crates_io_database/src/schema.rs diff --git a/diesel.toml b/diesel.toml index 52fd076e430..105b97e2810 100644 --- a/diesel.toml +++ b/diesel.toml @@ -1,6 +1,6 @@ # For documentation on how to configure this file, # see diesel.rs/guides/configuring-diesel-cli [print_schema] -file = "src/schema.rs" +file = "crates/crates_io_database/src/schema.rs" with_docs = true -patch_file = "src/schema.patch" +patch_file = "crates/crates_io_database/src/schema.patch" diff --git a/src/lib.rs b/src/lib.rs index 9733d5a9f65..97d06dd967d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,6 +19,7 @@ extern crate serde_json; extern crate tracing; pub use crate::{app::App, email::Emails}; +pub use crates_io_database::schema; use std::sync::Arc; use crate::app::AppState; @@ -49,7 +50,6 @@ pub mod models; pub mod rate_limiter; mod real_ip; mod router; -pub mod schema; pub mod sentry; pub mod sql; pub mod sqs;