diff --git a/src/bin/crates-admin/yank_version.rs b/src/bin/crates-admin/yank_version.rs index 33c74230170..79fea8b9b52 100644 --- a/src/bin/crates-admin/yank_version.rs +++ b/src/bin/crates-admin/yank_version.rs @@ -42,6 +42,7 @@ async fn yank(opts: Opts, conn: &mut AsyncPgConnection) -> anyhow::Result<()> { let v: Version = Version::belonging_to(&krate) .filter(versions::num.eq(&version)) + .select(Version::as_select()) .first(conn) .await?; diff --git a/src/controllers/krate/downloads.rs b/src/controllers/krate/downloads.rs index 171b014a610..3ff2dbba87e 100644 --- a/src/controllers/krate/downloads.rs +++ b/src/controllers/krate/downloads.rs @@ -32,6 +32,7 @@ pub async fn downloads(state: AppState, Path(crate_name): Path) -> AppRe let mut versions: Vec = versions::table .filter(versions::crate_id.eq(crate_id)) + .select(Version::as_select()) .load(&mut conn) .await?; diff --git a/src/controllers/krate/search.rs b/src/controllers/krate/search.rs index 6f975ad01b5..86e44afed19 100644 --- a/src/controllers/krate/search.rs +++ b/src/controllers/krate/search.rs @@ -216,6 +216,7 @@ pub async fn search(app: AppState, req: Parts) -> AppResult { let span = info_span!("db.query", message = "SELECT ... FROM versions"); let versions: Vec = Version::belonging_to(&crates) .filter(versions::yanked.eq(false)) + .select(Version::as_select()) .load(&mut conn) .instrument(span) .await?; diff --git a/src/controllers/summary.rs b/src/controllers/summary.rs index 4276efaed9c..bd7829f294e 100644 --- a/src/controllers/summary.rs +++ b/src/controllers/summary.rs @@ -40,6 +40,7 @@ pub async fn summary(state: AppState) -> AppResult { let krates = data.iter().map(|(c, ..)| c).collect::>(); let versions: Vec = Version::belonging_to(&krates) .filter(versions::yanked.eq(false)) + .select(Version::as_select()) .load(conn) .await?; diff --git a/src/index.rs b/src/index.rs index 06b2e6fd1eb..5b43c7e956a 100644 --- a/src/index.rs +++ b/src/index.rs @@ -59,7 +59,10 @@ pub async fn index_metadata( krate: &Crate, conn: &mut AsyncPgConnection, ) -> QueryResult> { - let mut versions: Vec = Version::belonging_to(krate).load(conn).await?; + let mut versions: Vec = Version::belonging_to(krate) + .select(Version::as_select()) + .load(conn) + .await?; // We sort by `created_at` by default, but since tests run within a // single database transaction the versions will all have the same diff --git a/src/models/krate.rs b/src/models/krate.rs index 1f982815827..f423595dc29 100644 --- a/src/models/krate.rs +++ b/src/models/krate.rs @@ -207,6 +207,7 @@ impl Crate { ) -> AppResult { Version::belonging_to(self) .filter(versions::num.eq(version)) + .select(Version::as_select()) .first(conn) .await .optional()? diff --git a/src/models/version.rs b/src/models/version.rs index 1ce7a064ce3..aadc9b41eb9 100644 --- a/src/models/version.rs +++ b/src/models/version.rs @@ -32,7 +32,6 @@ pub struct Version { pub has_lib: Option, pub bin_names: Option>>, pub yank_message: Option, - pub num_no_build: String, pub edition: Option, pub description: Option, pub homepage: Option, @@ -117,6 +116,7 @@ impl NewVersion<'_> { async move { let version: Version = insert_into(versions::table) .values(self) + .returning(Version::as_returning()) .get_result(conn) .await?; diff --git a/src/worker/jobs/downloads/update_metadata.rs b/src/worker/jobs/downloads/update_metadata.rs index 50e337ab346..79502e334c5 100644 --- a/src/worker/jobs/downloads/update_metadata.rs +++ b/src/worker/jobs/downloads/update_metadata.rs @@ -286,6 +286,7 @@ mod tests { let version_before: Version = versions::table .find(version.id) + .select(Version::as_select()) .first(&mut conn) .await .unwrap(); @@ -299,6 +300,7 @@ mod tests { let version2: Version = versions::table .find(version.id) + .select(Version::as_select()) .first(&mut conn) .await .unwrap(); @@ -324,6 +326,7 @@ mod tests { let version3: Version = versions::table .find(version.id) + .select(Version::as_select()) .first(&mut conn) .await .unwrap();