feat: add compression and digest support with database schema updates

This commit is contained in:
Andrew Phillips
2025-05-14 09:45:51 -03:00
committed by Andrew Phillips (aider)
parent 9b61a37036
commit bbdfe19836
19 changed files with 181 additions and 111 deletions

View File

@@ -3,7 +3,7 @@ use chrono::prelude::*;
use lazy_static::lazy_static;
use log::*;
use rusqlite::{Connection, OpenFlags};
use rusqlite_migration::{Migrations, M};
use rusqlite_migration::{M, Migrations};
use std::collections::HashMap;
use std::path::PathBuf;
use std::rc::Rc;
@@ -32,12 +32,8 @@ lazy_static! {
FOREIGN KEY(id) REFERENCES items(id) ON DELETE CASCADE,
PRIMARY KEY(id, name));"
),
M::up(
"ALTER TABLE items ADD COLUMN digest_type TEXT NOT NULL DEFAULT 'none';"
),
M::up(
"ALTER TABLE items ADD COLUMN digest_value TEXT NULL;"
),
M::up("ALTER TABLE items ADD COLUMN digest_type TEXT NOT NULL DEFAULT 'none';"),
M::up("ALTER TABLE items ADD COLUMN digest_value TEXT NULL;"),
]);
}
@@ -97,7 +93,13 @@ pub fn update_item(conn: &Connection, item: Item) -> Result<()> {
debug!("DB: Updating item: {:?}", item);
conn.execute(
"UPDATE items SET size=?2, compression=?3, digest_type=?4, digest_value=?5 WHERE id=?1",
(item.id, item.size, item.compression, item.digest_type, item.digest_value),
(
item.id,
item.size,
item.compression,
item.digest_type,
item.digest_value,
),
)?;
Ok(())
}