From 15d780d21f0279b18079761c41699e7f87860918 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 14 Nov 2024 15:17:24 +0100 Subject: [PATCH 1/3] admin/migrate: Simplify `HarnessWithOutput` creation --- src/bin/crates-admin/migrate.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bin/crates-admin/migrate.rs b/src/bin/crates-admin/migrate.rs index b3520ef5eae..4369397f1eb 100644 --- a/src/bin/crates-admin/migrate.rs +++ b/src/bin/crates-admin/migrate.rs @@ -47,8 +47,7 @@ pub async fn run(_opts: Opts) -> Result<(), Error> { spawn_blocking(move || { info!("Migrating the database"); - let mut stdout = std::io::stdout(); - let mut harness = HarnessWithOutput::new(&mut conn, &mut stdout); + let mut harness = HarnessWithOutput::write_to_stdout(&mut conn); harness .run_pending_migrations(MIGRATIONS) .map_err(|err| anyhow!("Failed to run migrations: {err}"))?; From 3aae02512c15771b8f24c33aee19ffe55a0e823c Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 14 Nov 2024 15:17:47 +0100 Subject: [PATCH 2/3] admin/migrate: Inline `harness` variable --- src/bin/crates-admin/migrate.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bin/crates-admin/migrate.rs b/src/bin/crates-admin/migrate.rs index 4369397f1eb..786cbc1f18b 100644 --- a/src/bin/crates-admin/migrate.rs +++ b/src/bin/crates-admin/migrate.rs @@ -47,8 +47,7 @@ pub async fn run(_opts: Opts) -> Result<(), Error> { spawn_blocking(move || { info!("Migrating the database"); - let mut harness = HarnessWithOutput::write_to_stdout(&mut conn); - harness + HarnessWithOutput::write_to_stdout(&mut conn) .run_pending_migrations(MIGRATIONS) .map_err(|err| anyhow!("Failed to run migrations: {err}"))?; From 5ad54e91f1819eaa607462cbbbe94b309ef1a291 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 14 Nov 2024 15:50:33 +0100 Subject: [PATCH 3/3] admin/migrate: Improve migration error handling This preserves the properties of the original error instead of just stringifying it. --- src/bin/crates-admin/migrate.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/crates-admin/migrate.rs b/src/bin/crates-admin/migrate.rs index 786cbc1f18b..94b3929d106 100644 --- a/src/bin/crates-admin/migrate.rs +++ b/src/bin/crates-admin/migrate.rs @@ -49,7 +49,8 @@ pub async fn run(_opts: Opts) -> Result<(), Error> { info!("Migrating the database"); HarnessWithOutput::write_to_stdout(&mut conn) .run_pending_migrations(MIGRATIONS) - .map_err(|err| anyhow!("Failed to run migrations: {err}"))?; + .map_err(|e| anyhow!(e)) + .context("Failed to run migrations")?; info!("Synchronizing crate categories"); crates_io::boot::categories::sync_with_connection(CATEGORIES_TOML, &mut conn)?;