10
0
Fork 0
mirror of https://github.com/ZeusWPI/ZNS.git synced 2024-10-29 21:14:27 +01:00

Convert from sqlite to postgres database

This commit is contained in:
Xander Bil 2024-06-08 19:48:40 +02:00
parent 17b2fea0d3
commit 4847a13c08
No known key found for this signature in database
GPG key ID: EC9706B54A278598
6 changed files with 28 additions and 74 deletions

77
Cargo.lock generated
View file

@ -68,6 +68,12 @@ version = "3.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]] [[package]]
name = "bytes" name = "bytes"
version = "1.6.0" version = "1.6.0"
@ -105,24 +111,17 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
[[package]]
name = "deranged"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
]
[[package]] [[package]]
name = "diesel" name = "diesel"
version = "2.1.4" version = "2.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62c6fcf842f17f8c78ecf7c81d75c5ce84436b41ee07e03f490fbb5f5a8731d8" checksum = "62c6fcf842f17f8c78ecf7c81d75c5ce84436b41ee07e03f490fbb5f5a8731d8"
dependencies = [ dependencies = [
"bitflags 2.5.0",
"byteorder",
"diesel_derives", "diesel_derives",
"libsqlite3-sys", "itoa",
"time", "pq-sys",
] ]
[[package]] [[package]]
@ -443,16 +442,6 @@ version = "0.2.153"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libsqlite3-sys"
version = "0.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
dependencies = [
"pkg-config",
"vcpkg",
]
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.4.14" version = "0.4.14"
@ -514,12 +503,6 @@ dependencies = [
"tempfile", "tempfile",
] ]
[[package]]
name = "num-conv"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]] [[package]]
name = "num_cpus" name = "num_cpus"
version = "1.16.0" version = "1.16.0"
@ -634,10 +617,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
[[package]] [[package]]
name = "powerfmt" name = "pq-sys"
version = "0.2.0" version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd"
dependencies = [
"vcpkg",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
@ -911,37 +897,6 @@ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "time"
version = "0.3.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
dependencies = [
"deranged",
"itoa",
"num-conv",
"powerfmt",
"serde",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
dependencies = [
"num-conv",
"time-core",
]
[[package]] [[package]]
name = "tinyvec" name = "tinyvec"
version = "1.6.0" version = "1.6.0"

View file

@ -5,7 +5,7 @@ edition = "2021"
[dependencies] [dependencies]
diesel = { version = "2.1.4", features = ["sqlite"] } diesel = { version = "2.1.4", features = ["postgres"] }
dotenvy = "0.15" dotenvy = "0.15"
tokio = {version = "1.36.0", features = ["macros","rt-multi-thread","net"], default-features = false} tokio = {version = "1.36.0", features = ["macros","rt-multi-thread","net"], default-features = false}
ring = "0.17.8" ring = "0.17.8"

View file

@ -5,7 +5,7 @@ CREATE TABLE records (
class INT NOT NULL, class INT NOT NULL,
ttl INT NOT NULL, ttl INT NOT NULL,
rdlength INT NOT NULL, rdlength INT NOT NULL,
rdata BLOB NOT NULL, rdata BYTEA NOT NULL,
PRIMARY KEY (name,type,class,rdlength,rdata) PRIMARY KEY (name,type,class,rdlength,rdata)
) )

View file

@ -1,10 +1,9 @@
use diesel::prelude::*; use diesel::prelude::*;
use diesel::sqlite::SqliteConnection;
use crate::config::Config; use crate::config::Config;
pub fn establish_connection() -> SqliteConnection { pub fn establish_connection() -> PgConnection {
let database_url = Config::get().db_uri.clone(); let database_url = Config::get().db_uri.clone();
SqliteConnection::establish(&database_url) PgConnection::establish(&database_url)
.unwrap_or_else(|_| panic!("Error connecting to {}", Config::get().db_uri)) .unwrap_or_else(|_| panic!("Error connecting to {}", Config::get().db_uri))
} }

View file

@ -35,7 +35,7 @@ struct Record {
impl Record { impl Record {
pub fn get( pub fn get(
db: &mut SqliteConnection, db: &mut PgConnection,
name: String, name: String,
_type: i32, _type: i32,
class: i32, class: i32,
@ -50,7 +50,7 @@ impl Record {
} }
pub fn create( pub fn create(
db: &mut SqliteConnection, db: &mut PgConnection,
new_record: Record, new_record: Record,
) -> Result<usize, diesel::result::Error> { ) -> Result<usize, diesel::result::Error> {
diesel::insert_into(records::table) diesel::insert_into(records::table)
@ -59,7 +59,7 @@ impl Record {
} }
pub fn delete( pub fn delete(
db: &mut SqliteConnection, db: &mut PgConnection,
name: String, name: String,
_type: Option<i32>, _type: Option<i32>,
class: i32, class: i32,

View file

@ -4,10 +4,10 @@ diesel::table! {
records (name, type_, class, rdlength, rdata) { records (name, type_, class, rdlength, rdata) {
name -> Text, name -> Text,
#[sql_name = "type"] #[sql_name = "type"]
type_ -> Integer, type_ -> Int4,
class -> Integer, class -> Int4,
ttl -> Integer, ttl -> Int4,
rdlength -> Integer, rdlength -> Int4,
rdata -> Binary, rdata -> Bytea,
} }
} }