30 lines
974 B
Rust
30 lines
974 B
Rust
use std::sync::{Arc, Mutex};
|
|
use rusqlite::{Connection, Error};
|
|
|
|
pub fn initialise_database_tables(connection: &Arc<Mutex<Connection>>) -> Result<(), Error> {
|
|
connection.lock()
|
|
.unwrap()
|
|
.execute_batch(
|
|
"
|
|
BEGIN;
|
|
CREATE TABLE IF NOT EXISTS configuration (
|
|
id TEXT PRIMARY KEY,
|
|
initialisation_code VARCHAR
|
|
);
|
|
CREATE TABLE IF NOT EXISTS \"user\" (
|
|
id TEXT PRIMARY KEY,
|
|
username VARCHAR NOT NULL,
|
|
encrypted_password VARCHAR NOT NULL
|
|
);
|
|
CREATE TABLE IF NOT EXISTS library_item (
|
|
id TEXT PRIMARY KEY,
|
|
name VARCHAR NOT NULL,
|
|
type INTEGER NOT NULL,
|
|
parent_folder_id TEXT NULL,
|
|
FOREIGN KEY (parent_folder_id) REFERENCES library_item (id)
|
|
);
|
|
COMMIT;
|
|
"
|
|
)?;
|
|
Ok(())
|
|
} |