api-database-sequelize
Database with Sequelize ORM
Quick Guide: Sequelize is a promise-based ORM for PostgreSQL, MySQL, MariaDB, SQLite, and MS SQL Server. Use class-based models with
Model.init()(v6) or decorators (v7) for type-safe definitions. Always useInferAttributes/InferCreationAttributeswithdeclarefor TypeScript models. Useincludefor eager loading to avoid N+1. Prefer managed transactions (auto-commit/rollback). Association alias (as) must match between definition andinclude. Paranoid mode requirestimestamps: true. v7 is alpha --- most production code uses v6.
<critical_requirements>
CRITICAL: Before Using This Skill
(You MUST use declare on all model class properties to prevent TypeScript from emitting class fields that conflict with Sequelize's internal attribute storage)
(You MUST pass { transaction: t } to every query inside a transaction callback --- missing this causes operations to run outside the transaction and skip rollback)
(You MUST use include for eager loading related models --- fetching associations in loops creates N+1 query problems)
(You MUST match the as alias in include with the alias used in the association definition --- mismatches silently return null for the association)
</critical_requirements>