generated from alecodes/base-template
wip: add sqlx setup
This commit is contained in:
parent
57074a89ff
commit
704be76887
5 changed files with 1856 additions and 14 deletions
|
|
@ -1,4 +1,6 @@
|
|||
use clap::{Parser, Subcommand};
|
||||
use futures::TryStreamExt;
|
||||
use sqlx::postgres::PgPool;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(version, about, long_about = None)]
|
||||
|
|
@ -21,14 +23,28 @@ enum Commands {
|
|||
},
|
||||
}
|
||||
|
||||
fn main() {
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let cli = Cli::parse();
|
||||
|
||||
let url = cli.db_url.unwrap();
|
||||
|
||||
// You can check for the existence of subcommands, and if found use their
|
||||
// matches just as you would the top level cmd
|
||||
match &cli.command {
|
||||
Commands::Query { sql } => {
|
||||
println!("Provided query: {sql:?}");
|
||||
}
|
||||
Commands::Query { sql } => handle_query(url, sql).await.unwrap(),
|
||||
}
|
||||
}
|
||||
|
||||
async fn handle_query(url: String, query: &String) -> Result<(), sqlx::Error> {
|
||||
let pool = PgPool::connect(url.as_str()).await?;
|
||||
|
||||
let mut rows = sqlx::query("DELETE FROM table").fetch(&pool);
|
||||
|
||||
while let Some(row) = rows.try_next().await? {
|
||||
// map the row into a user-defined domain type
|
||||
let email: &str = row.try_get("email")?;
|
||||
}
|
||||
|
||||
return Ok(());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue