add mssql
This commit is contained in:
19
src/check_maria_db.rs
Normal file
19
src/check_maria_db.rs
Normal 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
27
src/check_ms_sql.rs
Normal 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
19
src/check_mysql.rs
Normal 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
22
src/check_postgres.rs
Normal 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
26
src/check_sqlite.rs
Normal 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(())
|
||||||
|
}
|
||||||
112
src/main.rs
112
src/main.rs
@@ -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();
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user