aboutsummaryrefslogtreecommitdiff
path: root/src/db/mod.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-03 16:20:45 +0000
committerFuwn <[email protected]>2021-05-03 16:20:45 +0000
commit262d59d7b3bcfda94d333d1acc8ed1a505df1c0f (patch)
tree4fdcc0ae5df1bf4c0713eeb7d4bf712c812c3ec7 /src/db/mod.rs
parentdocs(readme): add development prerequisites (diff)
downloadwhirl-262d59d7b3bcfda94d333d1acc8ed1a505df1c0f.tar.xz
whirl-262d59d7b3bcfda94d333d1acc8ed1a505df1c0f.zip
feat(db): use diesel instead of sqlx, implement database tests
Diffstat (limited to 'src/db/mod.rs')
-rw-r--r--src/db/mod.rs30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs
index a3257ab..2ae0ece 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -1,4 +1,32 @@
// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective
// SPDX-License-Identifier: GPL-3.0-only
-mod tables;
+pub mod models;
+mod schema;
+
+use diesel::prelude::*;
+
+// use crate::db::models::*;
+
+pub fn establish_connection() -> SqliteConnection {
+ let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
+ SqliteConnection::establish(&database_url)
+ .unwrap_or_else(|_| panic!("error connecting to {}", database_url))
+}
+
+#[test]
+pub fn show_serials() {
+ use crate::db::{models::SerialNumber, schema::serial_numbers::dsl::*};
+
+ dotenv::dotenv().ok();
+
+ let results = serial_numbers
+ .limit(5)
+ .load::<SerialNumber>(&establish_connection())
+ .expect("error loading serial numbers table");
+
+ println!("found {} results", results.len());
+ for result in results {
+ println!("{}", result.user_name);
+ }
+}