Database & ORM
Larastvel uses SeaORM as its ORM, providing an Eloquent-like experience in Rust.
Configuration
Configure your database in config/database.toml:
toml
driver = "sqlite" # sqlite, postgres, mysql
host = "127.0.0.1"
port = 3306
database = "larastvel"
username = "root"
password = ""Models
rust
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "users")]
pub struct Model {
#[sea_orm(primary_key)]
pub id: i32,
pub name: String,
pub email: String,
}DbModel Trait
Larastvel extends SeaORM with a DbModel trait providing Laravel-style helpers:
rust
let users = User::all().await?;
let user = User::find(1).await?;
User::create(user_data).await?;
User::update(1, update_data).await?;
User::delete(1).await?;Migrations
Generate and run migrations via CLI:
bash
cargo run -p larastvel-cli -- make migration create_users_table
cargo run -p larastvel-cli -- migrateSeeders
rust
#[derive(Seeder)]
struct UserSeeder;
impl Seeder for UserSeeder {
async fn run(&self, db: &DatabaseConnection) -> Result<()> {
// Seed data
}
}bash
cargo run -p larastvel-cli -- db:seedModel Factories
rust
factory_create::<User>(UserFactory, 10).await?;Uses Faker for realistic test data.
