diff --git a/diesel.toml b/diesel.toml index 8c56a8d..f6e4573 100644 --- a/diesel.toml +++ b/diesel.toml @@ -1,2 +1,3 @@ [print_schema] +generate_missing_sql_type_definitions = true filter = { only_tables = ["library", "track_locations"] } diff --git a/src/lib.rs b/src/db.rs similarity index 70% rename from src/lib.rs rename to src/db.rs index ffeadb0..fb663cd 100644 --- a/src/lib.rs +++ b/src/db.rs @@ -1,13 +1,12 @@ +use diesel::prelude::*; use diesel::sqlite::SqliteConnection; -use diesel::Connection; use dotenvy::dotenv; use std::env; -pub mod schema; pub fn establish_connection() -> SqliteConnection { dotenv().ok(); let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set"); SqliteConnection::establish(&database_url) - .unwrap_or_else(|_| panic!("Error connecting to {}", database_url)) + .expect(&format!("Error connecting to {}", database_url)) } diff --git a/src/main.rs b/src/main.rs index e7a11a9..a53e093 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,24 @@ +use crate::db::establish_connection; +use crate::models::TrackLocations; +use diesel::prelude::*; + +mod db; +mod models; +mod schema; + fn main() { - println!("Hello, world!"); + use schema::track_locations::dsl::*; + let mut connection = establish_connection(); + + let results = track_locations + .limit(5) + .load::(&mut connection) + .expect("Error loading track locations"); + + println!("Displaying {} tracks", results.len()); + for track in results { + println!("{:?}", track.location); + println!("-----------\n"); + println!("{:?}", track.directory); + } } diff --git a/src/models.rs b/src/models.rs index e69de29..d301de3 100644 --- a/src/models.rs +++ b/src/models.rs @@ -0,0 +1,14 @@ +use diesel::prelude::*; + +#[derive(Queryable, Selectable)] +#[diesel(table_name = crate::schema::track_locations)] +#[diesel(check_for_backend(diesel::sqlite::Sqlite))] +pub struct TrackLocations { + pub id: Option, + pub location: Option, + pub filename: Option, + pub directory: Option, + pub filesize: Option, + pub fs_deleted: Option, + pub needs_verification: Option, +} diff --git a/src/schema.rs b/src/schema.rs index 301960b..f24bb96 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -1,7 +1,4 @@ // @generated automatically by Diesel CLI. -//diesel::table! { -// create -//} diesel::table! { itunes_library (id) {