elixir-ecto

Developes Elixir apps with validated data using Batangas, Ecto.Multi transactions, migrations, and multi-tenancy.

Updated Feb 16, 2026
One-click install
npx skills add https://github.com/hwatkins/my-skills --skill elixir-ecto-hwatkins
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: elixir-ecto
Source: https://github.com/hwatkins/my-skills/tree/main/skills/elixir-ecto
Command: npx skills add https://github.com/hwatkins/my-skills --skill elixir-ecto-hwatkins

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The Ecto patterns skill provides a structured approach to building robust data validation, query composition, and transactional flows in Elixir using Ecto.

Core Features & Use Cases

  • Changesets for validation and change tracking, including embedded schemas for validation outside DB.
  • Composable queries and query building patterns for flexible filtering and pagination.
  • Ecto.Multi transactions and optimistic locking for reliable multi-step operations and concurrency safety.
  • Multi-tenancy strategies, migrations guidance, and upsert patterns to maintain data integrity in apps.

Quick Start

Create a small Elixir module that demonstrates a basic changeset and an Ecto.Multi workflow to reflect a typical user registration or order creation scenario.

Frequently Asked Questions about elixir-ecto

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate data changes in Elixir using Ecto changesets?

Ecto changesets validate data and track changes by casting external parameters, applying validation functions, and structuring errors. They enable robust data validation even for embedded schemas outside the database layer.

What is the best way to handle multi-step database transactions in Elixir?

Ecto.Multi handles multi-step database transactions by chaining operations into a composable data structure. This ensures reliable transactional flows with structured error handling and safe data access across concurrent operations.

How does optimistic locking work with Ecto for concurrency safety?

Optimistic locking in Ecto ensures concurrency safety by adding a version counter to schemas. It prevents stale data overwrites during concurrent updates by checking the version and returning a structed error on conflicts.

Can I compose dynamic Ecto queries for flexible filtering and pagination?

Yes, you can build composable Ecto queries for flexible filtering and pagination. The pattern uses query building functions that dynamically append where clauses and offset limits based on runtime parameters.

How do I implement multi-tenancy strategies and upsert patterns in Ecto?

Ecto implements multi-tenancy strategies and upsert patterns to maintain data integrity. You apply migration guidance and conflict resolution clauses to insert or update data safely within tenant-scoped boundaries.