Database Work Skill
Activation Context
Activates when working with databases, data models, queries, or migrations.
When to Invoke database-engineer Agent
- •Designing database schemas
- •Creating migrations
- •Optimizing queries
- •Setting up indexes
- •Implementing data validation
- •Planning data architecture
Coordination Protocol
Before Starting Database Work
- •Review data requirements from architect
- •Understand business logic from backend-engineer
- •Consider scalability requirements
- •Plan for data integrity
During Development
- •Design normalized schema (unless denormalization needed)
- •Add proper indexes for query performance
- •Implement foreign key constraints
- •Create reversible migrations
- •Document schema changes
- •Test migrations in staging
Migration Checklist
- • Migration is reversible (has up and down)
- • Tested in local environment
- • Tested in staging environment
- • Data backup plan for production
- • Indexes added for new columns used in queries
- • Foreign keys and constraints defined
- • Default values specified where appropriate
- • No data loss scenarios
Handoff Points
- •From architect: Data model requirements
- •To backend-engineer: Schema documentation and query patterns
- •To qa-engineer: Data validation test scenarios
- •To devsecopsengineer: Migration deployment process
Performance Optimization
- •Index frequently queried columns
- •Use appropriate data types
- •Avoid N+1 query problems
- •Implement connection pooling
- •Monitor slow queries
- •Use EXPLAIN to analyze query plans
Security Considerations (security-engineer review)
- •Encrypt sensitive data at rest
- •Use parameterized queries (prevent SQL injection)
- •Implement row-level security where needed
- •Limit database user permissions
- •No passwords or secrets in migrations
- •Regular backups and disaster recovery plan
Best Practices
- •Follow naming conventions (snake_case for PostgreSQL, etc.)
- •Add created_at and updated_at timestamps
- •Use UUIDs or auto-increment for primary keys
- •Document relationships and constraints
- •Version control all schema changes
- •Test migrations both up and down
- •Keep migrations small and focused
Common Patterns
- •One-to-Many: Use foreign keys
- •Many-to-Many: Use junction tables
- •Soft Deletes: Add deleted_at column
- •Audit Trails: Create audit log tables
- •Polymorphic Associations: Use type and ID columns