Initial commit: antigravity-claudekit
This commit is contained in:
107
skills/ck-databases/SKILL.md
Normal file
107
skills/ck-databases/SKILL.md
Normal file
@@ -0,0 +1,107 @@
|
||||
---
|
||||
name: ck-databases
|
||||
description: Design schemas and write queries for MongoDB and PostgreSQL. Use for database design, SQL/NoSQL queries, aggregation pipelines, indexes, migrations, replication, performance optimization, psql CLI operations.
|
||||
---
|
||||
|
||||
# ck-databases
|
||||
|
||||
Unified guide for working with MongoDB (document-oriented) and PostgreSQL (relational) databases.
|
||||
|
||||
## When to Use
|
||||
|
||||
- Designing database schemas and data models
|
||||
- Writing queries (SQL or MongoDB query language)
|
||||
- Building aggregation pipelines or complex joins
|
||||
- Optimizing indexes and query performance
|
||||
- Implementing database migrations
|
||||
- Setting up replication, sharding, or clustering
|
||||
- Configuring backups and disaster recovery
|
||||
- Analyzing slow queries and performance issues
|
||||
- Administering production database deployments
|
||||
|
||||
## Don't Use When
|
||||
|
||||
- ORM/query-builder API work only — refer to the specific library's docs via `ck-docs-seeker`
|
||||
- Infrastructure setup for managed database services — use `ck-devops`
|
||||
|
||||
## Database Selection Guide
|
||||
|
||||
| Need | Choose |
|
||||
|------|--------|
|
||||
| ACID transactions, complex joins | PostgreSQL |
|
||||
| Flexible document schema | MongoDB |
|
||||
| Caching, sessions, queues | Redis |
|
||||
| Analytics/OLAP workloads | PostgreSQL with proper indexing |
|
||||
| 1-to-few relationships | MongoDB embedded documents |
|
||||
| 1-to-many or many-to-many | MongoDB references or PostgreSQL FK |
|
||||
|
||||
## MongoDB Best Practices
|
||||
|
||||
- Use embedded documents for 1-to-few relationships
|
||||
- Reference documents for 1-to-many or many-to-many
|
||||
- Index frequently queried and sorted fields
|
||||
- Use aggregation pipeline for complex transformations
|
||||
- Enable authentication and TLS in production
|
||||
- Use Atlas for managed hosting
|
||||
|
||||
**Common patterns:**
|
||||
- CRUD operations with query operators and atomic updates
|
||||
- Aggregation pipeline stages: `$match`, `$group`, `$lookup`, `$project`, `$sort`
|
||||
- Index types: single field, compound, text, geospatial, TTL
|
||||
- Atlas search for full-text capabilities
|
||||
|
||||
## PostgreSQL Best Practices
|
||||
|
||||
- Normalize schema to 3NF; denormalize selectively for performance
|
||||
- Use foreign keys for referential integrity
|
||||
- Index foreign keys and frequently filtered columns
|
||||
- Use `EXPLAIN ANALYZE` to optimize queries
|
||||
- Regular `VACUUM` and `ANALYZE` maintenance
|
||||
- Connection pooling via pgBouncer for web apps
|
||||
|
||||
**Key features:**
|
||||
- `SELECT`, JOINs, subqueries, CTEs, window functions
|
||||
- `psql` meta-commands for administration
|
||||
- `EXPLAIN`, query optimization, vacuum, index maintenance
|
||||
- User management, backups, replication, point-in-time recovery
|
||||
|
||||
## Python Utility Scripts
|
||||
|
||||
Available in the skill's `scripts/` directory:
|
||||
|
||||
```bash
|
||||
# Generate and apply migrations
|
||||
python scripts/db_migrate.py --db mongodb --generate "add_user_index"
|
||||
python scripts/db_migrate.py --db postgres --apply
|
||||
|
||||
# Backup and restore
|
||||
python scripts/db_backup.py --db postgres --output /backups/
|
||||
|
||||
# Performance analysis
|
||||
python scripts/db_performance_check.py --db mongodb --threshold 100ms
|
||||
```
|
||||
|
||||
## Performance Optimization Checklist
|
||||
|
||||
- [ ] Indexes on frequently queried fields
|
||||
- [ ] Compound indexes ordered by selectivity
|
||||
- [ ] `EXPLAIN ANALYZE` run on slow queries
|
||||
- [ ] Connection pooling configured
|
||||
- [ ] Query result caching with Redis where appropriate
|
||||
- [ ] Pagination instead of full table scans
|
||||
- [ ] Read replicas for read-heavy workloads
|
||||
- [ ] Partitioning for very large tables (PostgreSQL)
|
||||
|
||||
## Security Checklist
|
||||
|
||||
- [ ] Authentication enabled (no anonymous access)
|
||||
- [ ] TLS/SSL for connections in production
|
||||
- [ ] Parameterized queries everywhere (never string concatenation)
|
||||
- [ ] Least-privilege database users
|
||||
- [ ] Regular backups tested for restore
|
||||
- [ ] Audit logging enabled for sensitive operations
|
||||
|
||||
## Resources
|
||||
|
||||
- MongoDB: https://www.mongodb.com/docs/
|
||||
- PostgreSQL: https://www.postgresql.org/docs/
|
||||
Reference in New Issue
Block a user