From f05dec5705eb1d7a70f6a38d4b429646d78d3431 Mon Sep 17 00:00:00 2001 From: augustuswm Date: Fri, 23 Jan 2026 16:23:56 -0600 Subject: [PATCH 1/3] Update installer to use migration harness --- rfd-installer/build.rs | 3 +++ rfd-installer/src/lib.rs | 10 ++-------- 2 files changed, 5 insertions(+), 8 deletions(-) create mode 100644 rfd-installer/build.rs diff --git a/rfd-installer/build.rs b/rfd-installer/build.rs new file mode 100644 index 00000000..380c933e --- /dev/null +++ b/rfd-installer/build.rs @@ -0,0 +1,3 @@ +fn main() { + println!("cargo:rerun-if-changed=../rfd-model/migrations"); +} diff --git a/rfd-installer/src/lib.rs b/rfd-installer/src/lib.rs index dfc21e21..e968fa6e 100644 --- a/rfd-installer/src/lib.rs +++ b/rfd-installer/src/lib.rs @@ -3,12 +3,10 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use diesel::{ - migration::{Migration, MigrationSource}, - pg::Pg, r2d2::{ConnectionManager, ManageConnection}, PgConnection, }; -use diesel_migrations::{embed_migrations, EmbeddedMigrations}; +use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness}; const MIGRATIONS: EmbeddedMigrations = embed_migrations!("../rfd-model/migrations"); @@ -17,11 +15,7 @@ pub fn run_migrations(url: &str, v_only: bool) { if !v_only { let mut conn = db_conn(url); - let migrations: Vec>> = MIGRATIONS.migrations().unwrap(); - - for migration in migrations { - migration.run(&mut conn).unwrap(); - } + conn.run_pending_migrations(MIGRATIONS).unwrap(); } } From 9e3cf8594605014af521e3245e947a00fd327af6 Mon Sep 17 00:00:00 2001 From: augustuswm Date: Fri, 23 Jan 2026 16:24:25 -0600 Subject: [PATCH 2/3] Update db installer to use migration harness from diesel --- rfd-installer/build.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rfd-installer/build.rs b/rfd-installer/build.rs index 380c933e..4f4f0bc6 100644 --- a/rfd-installer/build.rs +++ b/rfd-installer/build.rs @@ -1,3 +1,7 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at https://mozilla.org/MPL/2.0/. + fn main() { println!("cargo:rerun-if-changed=../rfd-model/migrations"); } From e0eab5cc53c287b51e1edd0e26a2b3627f2bda5d Mon Sep 17 00:00:00 2001 From: augustuswm Date: Sat, 24 Jan 2026 12:43:35 -0600 Subject: [PATCH 3/3] Update v-api --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 186461cb..bdb933cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -767,7 +767,7 @@ dependencies = [ [[package]] name = "dropshot-authorization-header" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/v-api#59bde132f283c5480a223e234727ba03903e1885" +source = "git+https://github.com/oxidecomputer/v-api#781afe4163b4c6599e6b4a918f9820b9b94de437" dependencies = [ "async-trait", "base64", @@ -4673,7 +4673,7 @@ dependencies = [ [[package]] name = "v-api" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/v-api#59bde132f283c5480a223e234727ba03903e1885" +source = "git+https://github.com/oxidecomputer/v-api#781afe4163b4c6599e6b4a918f9820b9b94de437" dependencies = [ "async-trait", "base64", @@ -4718,7 +4718,7 @@ dependencies = [ [[package]] name = "v-api-installer" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/v-api#59bde132f283c5480a223e234727ba03903e1885" +source = "git+https://github.com/oxidecomputer/v-api#781afe4163b4c6599e6b4a918f9820b9b94de437" dependencies = [ "diesel", "diesel_migrations", @@ -4727,7 +4727,7 @@ dependencies = [ [[package]] name = "v-api-permission-derive" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/v-api#59bde132f283c5480a223e234727ba03903e1885" +source = "git+https://github.com/oxidecomputer/v-api#781afe4163b4c6599e6b4a918f9820b9b94de437" dependencies = [ "heck", "proc-macro2", @@ -4738,7 +4738,7 @@ dependencies = [ [[package]] name = "v-model" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/v-api#59bde132f283c5480a223e234727ba03903e1885" +source = "git+https://github.com/oxidecomputer/v-api#781afe4163b4c6599e6b4a918f9820b9b94de437" dependencies = [ "async-bb8-diesel", "async-trait",