← ClaudeAtlas

seaorm_querylisted

Use this skill when writing database queries, migrations, or model definitions using SeaORM (Rust async ORM). Triggers on: "SeaORM", "sea_orm", "sea-orm", "EntityTrait", "ActiveModel", "QueryFilter", "RelationTrait", Rust database queries, "sea-orm-migration", "DatabaseConnection". Also use when the user asks how to do a JOIN, a conditional query, an upsert, pagination, or transaction in SeaORM.
feralbureau/luminy · ★ 0 · AI & Automation · score 68
Install: claude install-skill feralbureau/luminy
# seaorm_query SeaORM is an async, dynamic ORM for Rust built on top of SQLx. It generates Rust entities from your database schema and provides a type-safe query builder. This skill covers patterns for writing correct, efficient SeaORM queries. ## Entity Structure SeaORM entities are generated (or hand-written) as modules. Each entity has: ```rust // src/entities/order.rs use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; // The entity struct — maps to a table row #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)] #[sea_orm(table_name = "orders")] pub struct Model { #[sea_orm(primary_key)] pub id: i64, pub user_id: i64, pub status: String, pub total: Decimal, pub created_at: DateTimeWithTimeZone, pub updated_at: DateTimeWithTimeZone, } // Define relationships #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm(has_many = "super::order_item::Entity")] OrderItems, #[sea_orm( belongs_to = "super::user::Entity", from = "Column::UserId", to = "super::user::Column::Id" )] User, } impl Related<super::order_item::Entity> for Entity { fn to() -> RelationDef { Relation::OrderItems.def() } } impl ActiveModelBehavior for ActiveModel {} ``` ## Basic CRUD ### Find by primary key ```rust use sea_orm::EntityTrait; let order: Option<order::Model> = Order::find_by_id(order_id) .one(&db) .await?; let order = o