Beginning of data persistence module.
This commit is contained in:
parent
c012be04a9
commit
87bc628b56
3 changed files with 42 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
|||
target
|
||||
**/*.rs.bk
|
||||
backend/data/recipes.sqlite
|
||||
|
|
|
|||
|
|
@ -1,6 +1,39 @@
|
|||
use std::path::Path;
|
||||
use std::fs;
|
||||
|
||||
//use rusqlite::types::ToSql;
|
||||
//use rusqlite::{Connection, Result, NO_PARAMS};
|
||||
|
||||
const CURRENT_DB_VERSION: u32 = 1;
|
||||
|
||||
fn create_or_update() {
|
||||
|
||||
struct Connection {
|
||||
pub sqlite_con : rusqlite::Connection
|
||||
}
|
||||
|
||||
impl Connection {
|
||||
fn new() -> Connection {
|
||||
|
||||
// TODO: use a constant in consts module.
|
||||
let data_dir = Path::new("data");
|
||||
|
||||
if !data_dir.exists() {
|
||||
fs::DirBuilder::new().create(data_dir).unwrap();
|
||||
}
|
||||
|
||||
Connection { sqlite_con : rusqlite::Connection::open(data_dir.join("recipes.sqlite")).unwrap() }
|
||||
}
|
||||
}
|
||||
|
||||
pub fn create_or_update() {
|
||||
let connection = Connection::new();
|
||||
|
||||
// let mut stmt = connection.sqlite_con.prepare("SELECT * FROM versions ORDER BY date").unwrap();
|
||||
|
||||
//let mut stmt = connection.sqlite_con..prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='versions'").unwrap();
|
||||
connection.sqlite_con.query_row(
|
||||
"SELECT name FROM sqlite_master WHERE type='table' AND name='versions'",
|
||||
rusqlite::NO_PARAMS,
|
||||
|row| Ok(dbg!("test"))
|
||||
)
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ use std::{fs::File, env::args};
|
|||
use itertools::Itertools;
|
||||
|
||||
mod consts;
|
||||
mod db;
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "main.html")]
|
||||
|
|
@ -61,6 +62,8 @@ fn main() -> std::io::Result<()> {
|
|||
|
||||
println!("Configuration: {:?}", config);
|
||||
|
||||
let database_connection = db::create_or_update();
|
||||
|
||||
let mut listenfd = ListenFd::from_env();
|
||||
let mut server =
|
||||
HttpServer::new(
|
||||
|
|
@ -86,7 +89,7 @@ fn main() -> std::io::Result<()> {
|
|||
fn process_args() -> bool {
|
||||
fn print_usage() {
|
||||
println!("Usage:");
|
||||
println!(" {} [--help]", get_exe_name());
|
||||
println!(" {} [--help] [--test]", get_exe_name());
|
||||
}
|
||||
|
||||
let args: Vec<String> = args().collect();
|
||||
|
|
@ -94,6 +97,9 @@ fn process_args() -> bool {
|
|||
if args.iter().any(|arg| arg == "--help") {
|
||||
print_usage();
|
||||
return true
|
||||
} else if args.iter().any(|arg| arg == "--test") {
|
||||
let database_connection = db::create_or_update();
|
||||
return true
|
||||
}
|
||||
|
||||
false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue