From e1551113323d5a496b826d7b0265b1be6235f45c Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Sat, 5 Oct 2024 00:15:45 -0400 Subject: Make a backup of the `.hi` database before applying migrations. This was motivated by Kit and I both independently discovering that sqlite3 will happily partially apply migrations, leaving the DB in a broken state. --- src/cli.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/cli.rs') diff --git a/src/cli.rs b/src/cli.rs index d88916a..31dd4ce 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -49,6 +49,10 @@ pub struct Args { /// Sqlite URL or path for the `hi` database #[arg(short, long, env, default_value = "sqlite://.hi")] database_url: String, + + /// Sqlite URL or path for a backup of the `hi` database during upgrades + #[arg(short = 'D', long, env, default_value = "sqlite://.hi.backup")] + backup_database_url: String, } impl Args { @@ -100,7 +104,7 @@ impl Args { } async fn pool(&self) -> Result { - db::prepare(&self.database_url).await + db::prepare(&self.database_url, &self.backup_database_url).await } } -- cgit v1.2.3