Skip to main content

Module database

Module database 

Source
Expand description

Database module for Ferro framework

Provides a SeaORM-based ORM with Laravel-like API.

§Quick Start

use ferro_rs::{Config, DB, DatabaseConfig};

// 1. Register database config (in config/mod.rs)
Config::register(DatabaseConfig::from_env());

// 2. Initialize connection (in bootstrap.rs)
DB::init().await.expect("Failed to connect to database");

// 3. Use in controllers
let conn = DB::connection()?;
let users = User::find().all(conn.inner()).await?;

§Configuration

Set these environment variables:

DATABASE_URL=postgres://user:pass@localhost:5432/mydb
# or for SQLite:
DATABASE_URL=sqlite://./database.db

# Optional:
DB_MAX_CONNECTIONS=10
DB_MIN_CONNECTIONS=1
DB_CONNECT_TIMEOUT=30
DB_LOGGING=false

Re-exports§

pub use config::DatabaseConfig;
pub use config::DatabaseConfigBuilder;
pub use config::DatabaseType;
pub use connection::DbConnection;
pub use eager_loading::batch_load_has_many;
pub use eager_loading::BatchLoad;
pub use eager_loading::BatchLoadMany;
pub use model::Model;
pub use model::ModelMut;
pub use model::Scope;
pub use model::ScopedQuery;
pub use model::ScopedQueryBuilder;
pub use query_builder::QueryBuilder;
pub use route_binding::AutoRouteBinding;
pub use route_binding::RouteBinding;
pub use testing::TestDatabase;
pub use transaction::transaction;
pub use transaction::TransactionExt;
pub use sea_orm;

Modules§

config
Database configuration for Ferro framework
connection
Database connection management
eager_loading
Eager loading utilities for avoiding N+1 query problems
model
Model traits for Ferro ORM
query_builder
Fluent query builder for Eloquent-like API
route_binding
Route model binding support
testing
Testing utilities for database operations
transaction
Transaction helpers for database operations

Structs§

DB
Database facade - main entry point for database operations

Type Aliases§

Database
Injectable database connection type