diff --git a/src/bin/reembed_embeddings.rs b/src/bin/reembed_embeddings.rs index ba2a4f0..94c8d63 100644 --- a/src/bin/reembed_embeddings.rs +++ b/src/bin/reembed_embeddings.rs @@ -286,6 +286,13 @@ async fn main() -> Result<()> { let mut conn = SqliteConnection::establish(&database_url) .with_context(|| format!("connecting to {}", database_url))?; + // Run beside the live server: its watcher writes the same file, and + // without a busy timeout one contended UPDATE fails the whole run. + { + use diesel::connection::SimpleConnection; + conn.batch_execute("PRAGMA busy_timeout = 15000;") + .context("setting busy_timeout")?; + } // This tool exists to move the corpus to the configured contract, so it // embeds even while the stored one differs (#189).