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=falseRe-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