add mssql

This commit is contained in:
2021-08-19 21:40:06 -05:00
parent 50e78602f3
commit fe01037749
6 changed files with 127 additions and 98 deletions

19
src/check_maria_db.rs Normal file
View File

@@ -0,0 +1,19 @@
use log::info;
use sqlx::mysql::MySqlPoolOptions;
pub async fn check_maria_db() -> Result<(), sqlx::Error> {
let pool = MySqlPoolOptions::new()
.max_connections(5)
.connect("mysql://demo_user:demo_pass@localhost:8084/demo")
.await?;
// Make a simple query to return the given parameter
let row = sqlx::query("SELECT * from events")
.fetch_all(&pool)
.await?;
info!("Received {:?}", row);
Ok(())
}

27
src/check_ms_sql.rs Normal file
View File

@@ -0,0 +1,27 @@
use log::info;
use sqlx::mssql::{
MssqlConnectOptions,
MssqlPool,
};
pub async fn check_ms_sql() -> Result<(), sqlx::Error> {
// "mssql://sa:'adm1n_pa%s'@localhost:8085/demo"
let options = MssqlConnectOptions::new()
.host("localhost")
.port(8085)
.database("demo")
.username("demo_user")
.password("pas$w0rd");
let pool = MssqlPool::connect_with(options).await?;
// Make a simple query to return the given parameter
let _row = sqlx::query("SELECT * from Products")
.fetch_all(&pool)
.await?;
info!("Received ok!");
Ok(())
}

19
src/check_mysql.rs Normal file
View File

@@ -0,0 +1,19 @@
use log::info;
use sqlx::mysql::MySqlPoolOptions;
pub async fn check_mysql() -> Result<(), sqlx::Error> {
let pool = MySqlPoolOptions::new()
.max_connections(5)
.connect("mysql://demo_user:demo_pass@localhost:8086/demo")
.await?;
// Make a simple query to return the given parameter
let row = sqlx::query("SELECT * from events")
.fetch_all(&pool)
.await?;
info!("Received {:?}", row);
Ok(())
}

22
src/check_postgres.rs Normal file
View File

@@ -0,0 +1,22 @@
use log::info;
use sqlx::postgres::PgPoolOptions;
pub async fn check_postgres() -> Result<(), sqlx::Error> {
let pool = PgPoolOptions::new()
.max_connections(5)
.connect("postgres://demo_user:demo_pass@localhost:8087/demo")
.await?;
// Make a simple query to return the given parameter
let row: (i64,) = sqlx::query_as("SELECT $1")
.bind(150_i64)
.fetch_one(&pool)
.await?;
assert_eq!(row.0, 150);
info!("Received {}", row.0);
Ok(())
}

26
src/check_sqlite.rs Normal file
View File

@@ -0,0 +1,26 @@
use log::info;
use sqlx::sqlite::SqlitePoolOptions;
pub async fn check_sqlite() -> Result<(), sqlx::Error> {
// Create a connection pool
// for MySQL, use MySqlPoolOptions::new()
// for SQLite, use SqlitePoolOptions::new()
// etc.
let pool = SqlitePoolOptions::new()
.max_connections(5)
.connect("sqlite://test.db")
.await?;
// Make a simple query to return the given parameter
let row: (i64,) = sqlx::query_as("SELECT $1")
.bind(150_i64)
.fetch_one(&pool)
.await?;
assert_eq!(row.0, 150);
info!("Received {}", row.0);
Ok(())
}

View File

@@ -1,10 +1,16 @@
use log::info; use log::info;
use sqlx::{ use check_maria_db::check_maria_db;
mysql::MySqlPoolOptions, use check_ms_sql::check_ms_sql;
postgres::PgPoolOptions, use check_mysql::check_mysql;
sqlite::SqlitePoolOptions, use check_postgres::check_postgres;
}; use check_sqlite::check_sqlite;
mod check_maria_db;
mod check_ms_sql;
mod check_mysql;
mod check_postgres;
mod check_sqlite;
fn setup_logger() -> Result<(), fern::InitError> { fn setup_logger() -> Result<(), fern::InitError> {
fern::Dispatch::new() fern::Dispatch::new()
@@ -24,96 +30,6 @@ fn setup_logger() -> Result<(), fern::InitError> {
Ok(()) Ok(())
} }
async fn check_maria_db() -> Result<(), sqlx::Error> {
let pool = MySqlPoolOptions::new()
.max_connections(5)
.connect("mysql://demo_user:demo_pass@localhost:8084/demo")
.await?;
// Make a simple query to return the given parameter
let row = sqlx::query("SELECT * from events")
.fetch_all(&pool)
.await?;
info!("Received {:?}", row);
Ok(())
}
// async fn check_ms_sql() -> Result<(), sqlx::Error> {
// let pool = MySqlPoolOptions::new()
// .max_connections(5)
// .connect("mssql://sa:'adm1n_pa%s'@localhost:8085/demo")
// .await?;
// // Make a simple query to return the given parameter
// let row = sqlx::query("SELECT * from events")
// .fetch_all(&pool)
// .await?;
// info!("Received {:?}", row);
// Ok(())
// }
async fn check_mysql() -> Result<(), sqlx::Error> {
let pool = MySqlPoolOptions::new()
.max_connections(5)
.connect("mysql://demo_user:demo_pass@localhost:8086/demo")
.await?;
// Make a simple query to return the given parameter
let row = sqlx::query("SELECT * from events")
.fetch_all(&pool)
.await?;
info!("Received {:?}", row);
Ok(())
}
async fn check_postgres() -> Result<(), sqlx::Error> {
let pool = PgPoolOptions::new()
.max_connections(5)
.connect("postgres://demo_user:demo_pass@localhost:8087/demo")
.await?;
// Make a simple query to return the given parameter
let row: (i64,) = sqlx::query_as("SELECT $1")
.bind(150_i64)
.fetch_one(&pool)
.await?;
assert_eq!(row.0, 150);
info!("Received {}", row.0);
Ok(())
}
async fn check_sqlite() -> Result<(), sqlx::Error> {
// Create a connection pool
// for MySQL, use MySqlPoolOptions::new()
// for SQLite, use SqlitePoolOptions::new()
// etc.
let pool = SqlitePoolOptions::new()
.max_connections(5)
.connect("sqlite://test.db")
.await?;
// Make a simple query to return the given parameter
let row: (i64,) = sqlx::query_as("SELECT $1")
.bind(150_i64)
.fetch_one(&pool)
.await?;
assert_eq!(row.0, 150);
info!("Received {}", row.0);
Ok(())
}
//#[async_std::main] //#[async_std::main]
#[tokio::main] #[tokio::main]
async fn main() -> Result<(), sqlx::Error> { async fn main() -> Result<(), sqlx::Error> {
@@ -126,9 +42,9 @@ async fn main() -> Result<(), sqlx::Error> {
tokio::spawn(async move { tokio::spawn(async move {
check_mysql().await.unwrap(); check_mysql().await.unwrap();
}), }),
// tokio::spawn(async move { tokio::spawn(async move {
// check_ms_sql().await.unwrap(); check_ms_sql().await.unwrap();
// }), }),
tokio::spawn(async move { tokio::spawn(async move {
check_maria_db().await.unwrap(); check_maria_db().await.unwrap();
}), }),