From 04ecc38925e1cf4e5bdf9a4a07afce1dd63d93f7 Mon Sep 17 00:00:00 2001 From: Jacob Hinkle Date: Tue, 15 Nov 2022 09:49:35 -0500 Subject: [PATCH] Record dataset with name during init --- src/db.rs | 6 +++++- src/main.rs | 6 +++--- src/migrations/20221024_initial_schema.sql | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/db.rs b/src/db.rs index af68cbb..685a757 100644 --- a/src/db.rs +++ b/src/db.rs @@ -60,13 +60,17 @@ pub fn schema_version(conn: &Connection) -> Result { /// /// This function initializes a database to the latest schema, and also generates a new random UUID /// and associates that with this dataset. The generated uuid is returned. -pub fn init(conn: &mut Connection) -> Result { +pub fn init(conn: &mut Connection, name: &str) -> Result { MIGRATIONS.to_latest(conn)?; let u = uuid::Uuid::new_v4(); conn.execute( "INSERT INTO local_metadata (key, value) VALUES ('dataset_uuid', ?)", [u.to_string()], )?; + conn.execute( + "INSERT INTO dataset (key, name) VALUES (?1, ?2)", + (u.as_bytes(), name), + )?; Ok(u) } diff --git a/src/main.rs b/src/main.rs index 5ff4742..8fd781d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,8 +43,8 @@ enum Command { }, } -fn init_schema(conn: &mut Connection) -> Uuid { - match nancy::db::init(conn) { +fn init_schema(conn: &mut Connection, name: &str) -> Uuid { + match nancy::db::init(conn, name) { Err(e) => { log::error!("Encountered error in initializing schema: {:?}", e); process::exit(1); @@ -130,7 +130,7 @@ fn main() { Ok(cc) => cc, }; conn.pragma_update(None, "foreign_keys", &"ON").unwrap(); - let u = init_schema(&mut conn); + let u = init_schema(&mut conn, name); do_record( &mut conn, &format!("Initial recording of dataset {:?}", u), diff --git a/src/migrations/20221024_initial_schema.sql b/src/migrations/20221024_initial_schema.sql index f742284..51e2a18 100644 --- a/src/migrations/20221024_initial_schema.sql +++ b/src/migrations/20221024_initial_schema.sql @@ -65,7 +65,8 @@ CREATE INDEX FK_user_machine ON user (machine); -- https://datatracker.ietf.org/doc/html/rfc4122.html -- This is possible in Python by simply calling uuid.uuid4() with no arguments CREATE TABLE dataset ( - key BLOB PRIMARY KEY NOT NULL -- UUID generated by uuid.uuid4() + key BLOB PRIMARY KEY NOT NULL, -- UUID generated by uuid.uuid4() + name TEXT NOT NULL );