Files
lumi-re/backend/infrastructure/src/common/database_initialisation.rs
T

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(())
}