#[non_exhaustive]pub struct DatabaseConnection {
pub inner: DatabaseConnectionType,
/* private fields */
}Expand description
A handle to a database — implements ConnectionTrait
and TransactionTrait so it works with every
query and mutation method in SeaORM.
Behind the scenes this is a connection pool (for SQLx-backed drivers) or
a shared connection (for rusqlite / mocks / proxies), so it is cheap
to clone — pass &DbConn around or db.clone() into spawned tasks.
Obtain one via Database::connect.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.inner: DatabaseConnectionTypeDriver-specific connection or pool. Held in a field so we can attach orthogonal state (e.g. RBAC) alongside.
Implementations§
Source§impl DatabaseConnection
impl DatabaseConnection
Sourcepub fn as_mock_connection(&self) -> &MockDatabaseConnection
Available on crate feature mock only.
pub fn as_mock_connection(&self) -> &MockDatabaseConnection
mock only.Sourcepub fn into_transaction_log(self) -> Vec<Transaction>
Available on crate feature mock only.
pub fn into_transaction_log(self) -> Vec<Transaction>
mock only.Get the transaction log as a collection Vec<crate::Transaction>
§Panics
Panics if the mocker mutex is being held by another thread.
Source§impl DatabaseConnection
impl DatabaseConnection
Sourcepub fn as_proxy_connection(&self) -> &ProxyDatabaseConnection
Available on crate feature proxy only.
pub fn as_proxy_connection(&self) -> &ProxyDatabaseConnection
proxy only.Source§impl DatabaseConnection
impl DatabaseConnection
Sourcepub fn load_rbac(&self) -> Result<(), DbErr>
Available on crate feature rbac only.
pub fn load_rbac(&self) -> Result<(), DbErr>
rbac only.Load RBAC data from the same database as this connection and setup RBAC engine. If the RBAC engine already exists, it will be replaced.
Sourcepub fn load_rbac_from(&self, db: &DbConn) -> Result<(), DbErr>
Available on crate feature rbac only.
pub fn load_rbac_from(&self, db: &DbConn) -> Result<(), DbErr>
rbac only.Load RBAC data from the given database connection and setup RBAC engine. This could be from another database.
Sourcepub fn replace_rbac(&self, engine: RbacEngine)
Available on crate feature rbac only.
pub fn replace_rbac(&self, engine: RbacEngine)
rbac only.Replace the internal RBAC engine.
Sourcepub fn restricted_for(
&self,
user_id: RbacUserId,
) -> Result<RestrictedConnection, DbErr>
Available on crate feature rbac only.
pub fn restricted_for( &self, user_id: RbacUserId, ) -> Result<RestrictedConnection, DbErr>
rbac only.Create a restricted connection with access control specific for the user.
Source§impl DatabaseConnection
impl DatabaseConnection
Sourcepub fn transaction<F, T, E>(
&self,
callback: F,
) -> Result<T, TransactionError<E>>
pub fn transaction<F, T, E>( &self, callback: F, ) -> Result<T, TransactionError<E>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. Otherwise, the transaction will be committed.
Sourcepub fn transaction_with_config<F, T, E>(
&self,
callback: F,
isolation_level: Option<IsolationLevel>,
access_mode: Option<AccessMode>,
) -> Result<T, TransactionError<E>>
pub fn transaction_with_config<F, T, E>( &self, callback: F, isolation_level: Option<IsolationLevel>, access_mode: Option<AccessMode>, ) -> Result<T, TransactionError<E>>
Execute the function inside a transaction with isolation level and/or access mode. If the function returns an error, the transaction will be rolled back. Otherwise, the transaction will be committed.
Sourcepub fn get_database_backend(&self) -> DbBackend
pub fn get_database_backend(&self) -> DbBackend
Sourcepub fn get_schema_builder(&self) -> SchemaBuilder
pub fn get_schema_builder(&self) -> SchemaBuilder
Creates a SchemaBuilder for this backend
Sourcepub fn set_metric_callback<F>(&mut self, _callback: F)
pub fn set_metric_callback<F>(&mut self, _callback: F)
Sets a callback to metric this connection
Sourcepub fn close(self) -> Result<(), DbErr>
pub fn close(self) -> Result<(), DbErr>
Explicitly close the database connection.
See Self::close_by_ref for usage with references.
Sourcepub fn close_by_ref(&self) -> Result<(), DbErr>
pub fn close_by_ref(&self) -> Result<(), DbErr>
Explicitly close the database connection
Trait Implementations§
Source§impl Clone for DatabaseConnection
impl Clone for DatabaseConnection
Source§fn clone(&self) -> DatabaseConnection
fn clone(&self) -> DatabaseConnection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ConnectionTrait for DatabaseConnection
impl ConnectionTrait for DatabaseConnection
Source§fn get_database_backend(&self) -> DbBackend
fn get_database_backend(&self) -> DbBackend
Source§fn execute_raw(&self, stmt: Statement) -> Result<ExecResult, DbErr>
fn execute_raw(&self, stmt: Statement) -> Result<ExecResult, DbErr>
Source§fn execute_unprepared(&self, sql: &str) -> Result<ExecResult, DbErr>
fn execute_unprepared(&self, sql: &str) -> Result<ExecResult, DbErr>
Source§fn query_one_raw(&self, stmt: Statement) -> Result<Option<QueryResult>, DbErr>
fn query_one_raw(&self, stmt: Statement) -> Result<Option<QueryResult>, DbErr>
QueryResultSource§fn query_all_raw(&self, stmt: Statement) -> Result<Vec<QueryResult>, DbErr>
fn query_all_raw(&self, stmt: Statement) -> Result<Vec<QueryResult>, DbErr>
QueryResultSource§fn is_mock_connection(&self) -> bool
fn is_mock_connection(&self) -> bool
Source§fn execute<S: StatementBuilder>(&self, stmt: &S) -> Result<ExecResult, DbErr>
fn execute<S: StatementBuilder>(&self, stmt: &S) -> Result<ExecResult, DbErr>
StatementBuilderSource§fn query_one<S: StatementBuilder>(
&self,
stmt: &S,
) -> Result<Option<QueryResult>, DbErr>
fn query_one<S: StatementBuilder>( &self, stmt: &S, ) -> Result<Option<QueryResult>, DbErr>
StatementBuilder and return a single row of QueryResultSource§fn query_all<S: StatementBuilder>(
&self,
stmt: &S,
) -> Result<Vec<QueryResult>, DbErr>
fn query_all<S: StatementBuilder>( &self, stmt: &S, ) -> Result<Vec<QueryResult>, DbErr>
StatementBuilder and return a vector of QueryResultSource§fn support_returning(&self) -> bool
fn support_returning(&self) -> bool
RETURNING syntax on insert and updateSource§impl Debug for DatabaseConnection
impl Debug for DatabaseConnection
Source§impl Default for DatabaseConnection
impl Default for DatabaseConnection
Source§impl<'c> From<&'c DatabaseConnection> for DatabaseExecutor<'c>
impl<'c> From<&'c DatabaseConnection> for DatabaseExecutor<'c>
Source§fn from(conn: &'c DatabaseConnection) -> Self
fn from(conn: &'c DatabaseConnection) -> Self
Source§impl From<DatabaseConnectionType> for DatabaseConnection
impl From<DatabaseConnectionType> for DatabaseConnection
Source§fn from(inner: DatabaseConnectionType) -> Self
fn from(inner: DatabaseConnectionType) -> Self
Source§impl<'c> IntoDatabaseExecutor<'c> for &'c DatabaseConnection
impl<'c> IntoDatabaseExecutor<'c> for &'c DatabaseConnection
Source§fn into_database_executor(self) -> DatabaseExecutor<'c>
fn into_database_executor(self) -> DatabaseExecutor<'c>
DatabaseExecutor.Source§impl StreamTrait for DatabaseConnection
Available on crate feature stream only.
impl StreamTrait for DatabaseConnection
stream only.Source§type Stream<'a> = QueryStream
type Stream<'a> = QueryStream
Source§fn get_database_backend(&self) -> DbBackend
fn get_database_backend(&self) -> DbBackend
Source§fn stream_raw<'a>(&'a self, stmt: Statement) -> Result<Self::Stream<'a>, DbErr>
fn stream_raw<'a>(&'a self, stmt: Statement) -> Result<Self::Stream<'a>, DbErr>
Source§fn stream<'a, S: StatementBuilder>(
&'a self,
stmt: &S,
) -> Result<Self::Stream<'a>, DbErr>
fn stream<'a, S: StatementBuilder>( &'a self, stmt: &S, ) -> Result<Self::Stream<'a>, DbErr>
StatementBuilder and return a stream of resultsSource§impl TransactionTrait for DatabaseConnection
impl TransactionTrait for DatabaseConnection
Source§fn transaction<F, T, E>(&self, _callback: F) -> Result<T, TransactionError<E>>
fn transaction<F, T, E>(&self, _callback: F) -> Result<T, TransactionError<E>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Source§fn transaction_with_config<F, T, E>(
&self,
_callback: F,
_isolation_level: Option<IsolationLevel>,
_access_mode: Option<AccessMode>,
) -> Result<T, TransactionError<E>>
fn transaction_with_config<F, T, E>( &self, _callback: F, _isolation_level: Option<IsolationLevel>, _access_mode: Option<AccessMode>, ) -> Result<T, TransactionError<E>>
Execute the function inside a transaction. If the function returns an error, the transaction will be rolled back. If it does not return an error, the transaction will be committed.
Source§type Transaction = DatabaseTransaction
type Transaction = DatabaseTransaction
Source§fn begin(&self) -> Result<DatabaseTransaction, DbErr>
fn begin(&self) -> Result<DatabaseTransaction, DbErr>
BEGIN transaction.
Returns a Transaction that can be committed or rolled backSource§fn begin_with_config(
&self,
_isolation_level: Option<IsolationLevel>,
_access_mode: Option<AccessMode>,
) -> Result<DatabaseTransaction, DbErr>
fn begin_with_config( &self, _isolation_level: Option<IsolationLevel>, _access_mode: Option<AccessMode>, ) -> Result<DatabaseTransaction, DbErr>
BEGIN transaction with isolation level and/or access mode.
Returns a Transaction that can be committed or rolled backSource§fn begin_with_options(
&self,
_: TransactionOptions,
) -> Result<DatabaseTransaction, DbErr>
fn begin_with_options( &self, _: TransactionOptions, ) -> Result<DatabaseTransaction, DbErr>
BEGIN transaction with isolation level and/or access mode.
Returns a Transaction that can be committed or rolled backAuto Trait Implementations§
impl !RefUnwindSafe for DatabaseConnection
impl !Send for DatabaseConnection
impl !Sync for DatabaseConnection
impl !UnwindSafe for DatabaseConnection
impl Freeze for DatabaseConnection
impl Unpin for DatabaseConnection
impl UnsafeUnpin for DatabaseConnection
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more