added database_pool crate, for pool handling and migrations

This commit is contained in:
Philippe Loctaux 2023-02-27 14:36:48 +01:00
parent 27d02a0d5c
commit f60eb616d3
11 changed files with 197 additions and 0 deletions

View file

@ -0,0 +1,50 @@
//! # Initialize database pool connection
//!
//! ```
//! use database_pool::Pool;
//!
//! # async fn get_database() {
//! let database = Pool::init("/path/to/database.sqlite").await.expect("Failed to init pool");
//!
//! // Close pool
//! database.close().await;
//! # }
//! ```
//!
//! # Run migrations to pool
//!
//! ```
//! use database_pool::Pool;
//! use database_pool::run_migrations;
//!
//! # async fn migrations() {
//! # let database = Pool::init("/path/to/database.sqlite").await.unwrap();
//! run_migrations(&database.pool).await.expect("Failed to run migrations");
//! # }
//! ```
//!
//! # Run transaction on database
//!
//! ```
//! use database_pool::Pool;
//!
//! # async fn run_transaction() {
//! # let database = Pool::init("/path/to/database.sqlite").await.unwrap();
//! // Start transaction
//! let mut transaction = database.pool.begin().await.expect("Failed to start transaction");
//!
//! // Run functions requiring database
//!
//! // Commit transaction
//! transaction.commit().await.expect("Failed to commit transaction");
//!
//! // Do what you need :)
//!
//! # }
//! ```
mod migrations;
mod pool;
pub use migrations::run_migrations;
pub use pool::Pool;