INNER CODE UNIT · Rust
archive_db_at
aannoo/hcom · src/db/mod.rs:807
fn archive_db_at(db_path: &std::path::Path) -> Result<Option<String>> {
if !db_path.exists() {
return Ok(None);
}
let db_wal = db_path.with_extension("db-wal");
let db_shm = db_path.with_extension("db-shm");
// WAL checkpoint before archive
if let Ok(temp_conn) = Connection::open(db_path) {
let _ = temp_conn.execute_batch("PRAGMA wal_checkpoint(PASSIVE)");
}
// Create archive directory next to the DB file
let parent = db_path
.parent()
.unwrap_or_else(|| std::path::Path::new("."));
let timestamp = Utc::now().format("%Y-%m-%d_%H%M%S").to_string();