<< All versions
Skill v1.0.1
currentAutomated scan100/100majiayu000/claude-skill-registry/sqlmodel-task-models
3 files
──Details
PublishedMay 14, 2026 at 11:33 PM
Content Hashsha256:e393883d3898a1f5...
Git SHA63c042456db3
Bump Typepatch
──Files
Files (1 file, 2.2 KB)
SKILL.md2.2 KBactive
SKILL.md · 52 lines · 2.2 KB
version: "1.0.1" name: sqlmodel-task-models description: This skill should be used when defining a robust, type-safe, and async-compatible database schema for the Todo application using SQLModel, ensuring compatibility with Better Auth and optimized for PostgreSQL.
SQLModel Task Models
This skill providing guidance on defining a robust database schema using SQLModel for the Todo application.
Purpose
Defining a robust, type-safe, and async-compatible database schema for the Todo application using SQLModel, ensuring compatibility with Better Auth and optimized for PostgreSQL.
Capabilities
- User Model: Schema aligned with Better Auth requirements.
- Task Model: Full CRUD capability with relational mapping to Users.
- Relational Integrity: Proper foreign key constraints and back-references.
- Performance: Strategic indexing on
user_idandcompletedfields. - Safety: Automated timestamp management (
created_at,updated_at).
Implementation Details
Models Definition
python
from sqlmodel import SQLModel, Field, Relationshipfrom typing import List, Optionalfrom datetime import datetimeclass User(SQLModel, table=True):id: str = Field(primary_key=True)email: str = Field(unique=True, index=True)name: Optional[str] = Nonecreated_at: datetime = Field(default_factory=datetime.utcnow)tasks: List["Task"] = Relationship(back_populates="user")class Task(SQLModel, table=True):id: Optional[int] = Field(default=None, primary_key=True)user_id: str = Field(foreign_key="user.id", index=True)title: strdescription: Optional[str] = Nonecompleted: bool = Field(default=False, index=True)created_at: datetime = Field(default_factory=datetime.utcnow)updated_at: datetime = Field(default_factory=datetime.utcnow)user: Optional[User] = Relationship(back_populates="tasks")
Best Practices
- Using
table=Truefor models that map to database tables. - Explicitly defining indexes for fields used in
WHEREclauses (e.g.,user_id,completed). - Using
datetime.utcnowfor consistent cross-region timestamping. - Keeping
user_idas a string to match Better Auth's UUID/ID format.