generated from alecodes/base-template
feat: allow to infer database from url connection
This commit is contained in:
parent
a4fe3808de
commit
48a582eb7e
5 changed files with 29 additions and 3 deletions
23
src/sql.rs
23
src/sql.rs
|
|
@ -1,9 +1,28 @@
|
|||
use crate::error::Result;
|
||||
use clap::ValueEnum;
|
||||
use url::Url;
|
||||
|
||||
use crate::error::{Error, Result};
|
||||
|
||||
mod postgres;
|
||||
|
||||
#[derive(ValueEnum, Clone)]
|
||||
pub enum Database {
|
||||
Postgres,
|
||||
}
|
||||
|
||||
pub async fn handle_query(url: String, query: &String) -> Result<()> {
|
||||
let connector = postgres::PgConnector::new(url).await?;
|
||||
let parse = Url::parse(&url)?;
|
||||
let scheme = parse.scheme();
|
||||
|
||||
let connector = match scheme {
|
||||
"postgresql" => postgres::PgConnector::new(url).await?,
|
||||
&_ => {
|
||||
return Err(Error::Generic(format!(
|
||||
"Database `{}` is not supported",
|
||||
scheme
|
||||
)))
|
||||
}
|
||||
};
|
||||
|
||||
let rows = connector.query(query).await?;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue