diff --git a/taitan-orm/src/database/mysql/database.rs b/taitan-orm/src/database/mysql/database.rs index ac68670..bc8dd87 100644 --- a/taitan-orm/src/database/mysql/database.rs +++ b/taitan-orm/src/database/mysql/database.rs @@ -1,6 +1,6 @@ use super::transaction::MySqlTransaction; -use sqlx::{MySql, MySqlPool}; +use sqlx::{MySql, MySqlPool, PgPool}; use taitan_orm_trait::result::Result; use taitan_orm_trait::result::CountResult; use crate::executors::SqlExecutor; @@ -21,6 +21,10 @@ impl MySqlDatabase { pub fn get_pool(&self) -> Result<&MySqlPool> { Ok(&self.pool) } + + pub fn from_pool(pool: MySqlPool) -> Self { + Self { pool } + } } impl SqlGenericExecutor for MySqlDatabase { diff --git a/taitan-orm/src/database/postgres/database.rs b/taitan-orm/src/database/postgres/database.rs index e4b05c7..8122845 100644 --- a/taitan-orm/src/database/postgres/database.rs +++ b/taitan-orm/src/database/postgres/database.rs @@ -1,11 +1,11 @@ use super::transaction::PostgresTransaction; -use taitan_orm_trait::result::CountResult; use crate::brave_new_executor_impl; +use crate::executors::SqlExecutor; use crate::executors::SqlGenericExecutor; use sqlx::PgPool; use sqlx::Postgres; +use taitan_orm_trait::result::CountResult; use taitan_orm_trait::result::Result; -use crate::executors::SqlExecutor; #[derive(Debug, Clone)] pub struct PostgresDatabase { @@ -22,6 +22,10 @@ impl PostgresDatabase { pub fn get_pool(&self) -> Result<&PgPool> { Ok(&self.pool) } + + pub fn from_pool(pool: PgPool) -> Self { + Self { pool } + } } impl SqlGenericExecutor for PostgresDatabase { @@ -33,7 +37,6 @@ impl SqlGenericExecutor for PostgresDatabase { } } - impl SqlExecutor for PostgresDatabase { brave_new_executor_impl!(sqlx::Postgres); } diff --git a/taitan-orm/src/database/sqlite/database.rs b/taitan-orm/src/database/sqlite/database.rs index 28a94d2..215f8e8 100644 --- a/taitan-orm/src/database/sqlite/database.rs +++ b/taitan-orm/src/database/sqlite/database.rs @@ -1,10 +1,10 @@ use super::transaction::SqliteTransaction; use crate::brave_new_executor_impl; -use taitan_orm_trait::result::CountResult; use crate::executors::SqlExecutor; use crate::executors::SqlGenericExecutor; -use sqlx::SqlitePool; use sqlx::Sqlite; +use sqlx::SqlitePool; +use taitan_orm_trait::result::CountResult; use taitan_orm_trait::result::Result; #[derive(Debug, Clone)] @@ -22,8 +22,11 @@ impl SqliteDatabase { pub fn get_pool(&self) -> Result<&SqlitePool> { Ok(&self.sqlite_pool) } -} + pub fn from_pool(pool: SqlitePool) -> Self { + Self { sqlite_pool: pool } + } +} impl SqlGenericExecutor for SqliteDatabase { type DB = Sqlite; @@ -34,7 +37,6 @@ impl SqlGenericExecutor for SqliteDatabase { } } - impl SqlExecutor for SqliteDatabase { brave_new_executor_impl!(sqlx::Sqlite); }