Make db creation better
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
use crate::dictionary::app_data_dir;
|
||||
use rusqlite::Connection;
|
||||
|
||||
pub fn create_db() {
|
||||
let path = app_data_dir();
|
||||
let db_file = path.join("data.db");
|
||||
if !db_file.exists() {
|
||||
std::fs::File::create(&db_file).unwrap();
|
||||
let connection = Connection::open(&db_file).unwrap();
|
||||
connection.execute("PRAGMA foreign_keys = ON;", []).unwrap();
|
||||
|
||||
create_tables(&connection);
|
||||
}
|
||||
}
|
||||
|
||||
fn create_tables(conn: &Connection) {
|
||||
make_card_set(conn).unwrap();
|
||||
make_settings(conn).unwrap();
|
||||
make_word_group(conn).unwrap();
|
||||
make_words(conn).unwrap();
|
||||
make_card_stats(conn).unwrap();
|
||||
}
|
||||
|
||||
fn make_settings(conn: &Connection) -> Result<(), rusqlite::Error> {
|
||||
let query = include_str!("../../sql/settings.sql");
|
||||
conn.execute(query, ())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn make_card_set(conn: &Connection) -> Result<(), rusqlite::Error> {
|
||||
let query = include_str!("../../sql/card_set.sql");
|
||||
conn.execute(query, ())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn make_word_group(conn: &Connection) -> Result<(), rusqlite::Error> {
|
||||
let query = include_str!("../../sql/word_group.sql");
|
||||
conn.execute(query, ())?;
|
||||
conn.execute("insert into word_group (name) values (\"Слова\");", ())?;
|
||||
Ok(())
|
||||
}
|
||||
fn make_words(conn: &Connection) -> Result<(), rusqlite::Error> {
|
||||
let query = include_str!("../../sql/words.sql");
|
||||
conn.execute(query, ())?;
|
||||
Ok(())
|
||||
}
|
||||
fn make_card_stats(conn: &Connection) -> Result<(), rusqlite::Error> {
|
||||
let query = include_str!("../../sql/card_stats.sql");
|
||||
conn.execute(query, ())?;
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user