superkit-mcp-server 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +102 -102
- package/README.md +71 -71
- package/SUPERKIT.md +168 -168
- package/agents/code-archaeologist.md +106 -106
- package/agents/coder.md +90 -90
- package/agents/data-engineer.md +28 -28
- package/agents/devops-engineer.md +242 -242
- package/agents/git-manager.md +203 -203
- package/agents/orchestrator.md +420 -420
- package/agents/penetration-tester.md +188 -188
- package/agents/performance-optimizer.md +187 -187
- package/agents/planner.md +270 -270
- package/agents/qa-automation-engineer.md +103 -103
- package/agents/quant-developer.md +32 -32
- package/agents/reviewer.md +100 -100
- package/agents/scout.md +222 -222
- package/agents/security-auditor.md +3 -2
- package/agents/tester.md +274 -274
- package/agents/ui-designer.md +208 -208
- package/build/index.js +18 -9
- package/build/tools/__tests__/loggerTools.test.js +5 -5
- package/build/tools/archTools.js +2 -19
- package/build/tools/autoPreview.js +2 -2
- package/build/tools/compoundTools.js +4 -4
- package/build/tools/docsTools.js +5 -10
- package/build/tools/loggerTools.js +1 -1
- package/build/tools/todoTools.js +39 -39
- package/build/tools/validators/__tests__/apiSchema.test.js +23 -23
- package/build/tools/validators/__tests__/convertRules.test.js +5 -5
- package/build/tools/validators/__tests__/frontendDesign.test.js +12 -12
- package/build/tools/validators/__tests__/geoChecker.test.js +19 -19
- package/build/tools/validators/__tests__/mobileAudit.test.js +12 -12
- package/build/tools/validators/__tests__/reactPerformanceChecker.test.js +17 -17
- package/build/tools/validators/__tests__/securityScan.test.js +6 -6
- package/build/tools/validators/__tests__/seoChecker.test.js +16 -16
- package/build/tools/validators/__tests__/typeCoverage.test.js +14 -14
- package/build/tools/validators/convertRules.js +2 -2
- package/commands/README.md +122 -122
- package/commands/ask.toml +72 -72
- package/commands/brainstorm.toml +119 -119
- package/commands/chat.toml +77 -77
- package/commands/code-preview.toml +37 -37
- package/commands/code.toml +28 -28
- package/commands/content.toml +200 -200
- package/commands/cook.toml +77 -77
- package/commands/copywrite.toml +131 -131
- package/commands/db.toml +192 -192
- package/commands/debug.toml +166 -166
- package/commands/design.toml +158 -158
- package/commands/dev-rules.toml +14 -14
- package/commands/do.toml +117 -117
- package/commands/doc-rules.toml +14 -14
- package/commands/docs.toml +148 -148
- package/commands/fix.toml +440 -440
- package/commands/fullstack.toml +175 -175
- package/commands/git.toml +235 -235
- package/commands/help.toml +84 -84
- package/commands/integrate.toml +127 -127
- package/commands/journal.toml +136 -136
- package/commands/kit-setup.toml +40 -40
- package/commands/mcp.toml +183 -183
- package/commands/orchestration.toml +15 -15
- package/commands/plan.toml +171 -171
- package/commands/pm.toml +148 -148
- package/commands/pr.toml +50 -50
- package/commands/project.toml +32 -32
- package/commands/research.toml +117 -117
- package/commands/review-pr.toml +63 -63
- package/commands/review.toml +190 -190
- package/commands/scout-ext.toml +97 -97
- package/commands/scout.toml +79 -79
- package/commands/screenshot.toml +65 -65
- package/commands/session.toml +102 -102
- package/commands/skill.toml +384 -384
- package/commands/status.toml +22 -22
- package/commands/team.toml +56 -56
- package/commands/test.toml +164 -164
- package/commands/ticket.toml +70 -70
- package/commands/use.toml +106 -106
- package/commands/video.toml +83 -83
- package/commands/watzup.toml +71 -71
- package/commands/workflow.toml +14 -14
- package/package.json +35 -35
- package/skills/meta/README.md +30 -30
- package/skills/meta/api-design/SKILL.md +134 -134
- package/skills/meta/code-review/SKILL.md +44 -44
- package/skills/meta/code-review/checklists/pre-merge.md +25 -25
- package/skills/meta/code-review/workflows/architecture-pass.md +26 -26
- package/skills/meta/code-review/workflows/performance-pass.md +27 -27
- package/skills/meta/code-review/workflows/security-pass.md +29 -29
- package/skills/meta/compound-docs/SKILL.md +133 -133
- package/skills/meta/debug/SKILL.md +40 -40
- package/skills/meta/debug/templates/bug-report.template.md +31 -31
- package/skills/meta/debug/workflows/reproduce-issue.md +20 -20
- package/skills/meta/docker/SKILL.md +126 -126
- package/skills/meta/examples/supabase/SKILL.md +46 -46
- package/skills/meta/examples/supabase/references/best-practices.md +319 -319
- package/skills/meta/examples/supabase/references/common-patterns.md +373 -373
- package/skills/meta/examples/supabase/templates/migration-template.sql +49 -49
- package/skills/meta/examples/supabase/templates/rls-policy-template.sql +77 -77
- package/skills/meta/examples/supabase/workflows/debugging.md +260 -260
- package/skills/meta/examples/supabase/workflows/migration-workflow.md +211 -211
- package/skills/meta/examples/supabase/workflows/rls-policies.md +244 -244
- package/skills/meta/examples/supabase/workflows/schema-design.md +321 -321
- package/skills/meta/file-todos/SKILL.md +88 -88
- package/skills/meta/mobile/SKILL.md +140 -140
- package/skills/meta/nextjs/SKILL.md +101 -101
- package/skills/meta/performance/SKILL.md +130 -130
- package/skills/meta/react-patterns/SKILL.md +83 -83
- package/skills/meta/security/SKILL.md +114 -114
- package/skills/meta/session-resume/SKILL.md +96 -96
- package/skills/meta/tailwind/SKILL.md +139 -139
- package/skills/meta/testing/SKILL.md +43 -43
- package/skills/meta/testing/references/vitest-patterns.md +45 -45
- package/skills/meta/testing/templates/component-test.template.tsx +37 -37
- package/skills/tech/alpha-vantage/SKILL.md +142 -142
- package/skills/tech/alpha-vantage/references/commodities.md +153 -153
- package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -158
- package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -154
- package/skills/tech/alpha-vantage/references/fundamentals.md +223 -223
- package/skills/tech/alpha-vantage/references/intelligence.md +138 -138
- package/skills/tech/alpha-vantage/references/options.md +93 -93
- package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -374
- package/skills/tech/alpha-vantage/references/time-series.md +157 -157
- package/skills/tech/doc.md +6 -6
- package/skills/tech/financial-modeling/SKILL.md +18 -18
- package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -368
- package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -118
- package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -292
- package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -125
- package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1210 -1210
- package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -40
- package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -8
- package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -292
- package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -236
- package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -108
- package/skills/workflows/README.md +203 -203
- package/skills/workflows/adr.md +174 -174
- package/skills/workflows/changelog.md +74 -74
- package/skills/workflows/compound.md +323 -323
- package/skills/workflows/compound_health.md +74 -74
- package/skills/workflows/create-agent-skill.md +138 -139
- package/skills/workflows/cycle.md +144 -144
- package/skills/workflows/deploy-docs.md +84 -84
- package/skills/workflows/development-rules.md +42 -42
- package/skills/workflows/doc.md +95 -95
- package/skills/workflows/documentation-management.md +34 -34
- package/skills/workflows/explore.md +146 -146
- package/skills/workflows/generate_command.md +106 -106
- package/skills/workflows/heal-skill.md +97 -97
- package/skills/workflows/housekeeping.md +229 -229
- package/skills/workflows/kit-setup.md +102 -102
- package/skills/workflows/map-codebase.md +78 -78
- package/skills/workflows/orchestration-protocol.md +43 -43
- package/skills/workflows/plan-compound.md +439 -439
- package/skills/workflows/plan_review.md +269 -269
- package/skills/workflows/primary-workflow.md +37 -37
- package/skills/workflows/promote_pattern.md +86 -86
- package/skills/workflows/release-docs.md +82 -82
- package/skills/workflows/report-bug.md +135 -135
- package/skills/workflows/reproduce-bug.md +118 -118
- package/skills/workflows/resolve_pr.md +133 -133
- package/skills/workflows/resolve_todo.md +128 -128
- package/skills/workflows/review-compound.md +376 -376
- package/skills/workflows/skill-review.md +127 -127
- package/skills/workflows/specs.md +257 -257
- package/skills/workflows/triage-sprint.md +102 -102
- package/skills/workflows/triage.md +152 -152
- package/skills/workflows/work.md +399 -399
- package/skills/workflows/xcode-test.md +93 -93
package/commands/db.toml
CHANGED
|
@@ -1,193 +1,193 @@
|
|
|
1
|
-
description = "Database admin with health check and optimization (Database Admin Agent)"
|
|
2
|
-
|
|
3
|
-
prompt = """
|
|
4
|
-
# 🗄️ DATABASE ADMIN AGENT
|
|
5
|
-
|
|
6
|
-
Database task:
|
|
7
|
-
|
|
8
|
-
**Task:** {{args}}
|
|
9
|
-
|
|
10
|
-
## MODE DETECTION
|
|
11
|
-
|
|
12
|
-
| Mode | Trigger | Output |
|
|
13
|
-
|------|---------|--------|
|
|
14
|
-
| **QUERY** | "query", "sql" | Optimized SQL + EXPLAIN |
|
|
15
|
-
| **SCHEMA** | "schema", "design" | DDL + indexes + constraints |
|
|
16
|
-
| **OPTIMIZE** | "slow", "optimize" | Index strategy, query rewrite |
|
|
17
|
-
| **HEALTH** | "health", "check" | Full diagnostic report |
|
|
18
|
-
| **BACKUP** | "backup", "recovery" | PITR, WAL, restore |
|
|
19
|
-
| **POOL** | "connection", "pool" | PgBouncer, pooling config |
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## OPTIMIZE MODE - Query Performance
|
|
24
|
-
|
|
25
|
-
### EXPLAIN ANALYZE Template
|
|
26
|
-
```sql
|
|
27
|
-
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
|
|
28
|
-
SELECT ...
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Optimization Report
|
|
32
|
-
| Metric | Before | After | Improvement |
|
|
33
|
-
|--------|--------|-------|-------------|
|
|
34
|
-
| Execution | 45s | 0.8s | **98% faster** |
|
|
35
|
-
| Rows scanned | 10M | 1K | Index usage |
|
|
36
|
-
| Buffer hits | 20% | 95% | Cache improved |
|
|
37
|
-
|
|
38
|
-
### Index Recommendations
|
|
39
|
-
```sql
|
|
40
|
-
-- Missing index detected
|
|
41
|
-
CREATE INDEX CONCURRENTLY idx_orders_created_at
|
|
42
|
-
ON orders(created_at);
|
|
43
|
-
|
|
44
|
-
-- Covering index for query
|
|
45
|
-
CREATE INDEX idx_users_orders
|
|
46
|
-
ON users(id) INCLUDE (name, email);
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## HEALTH MODE - Full Diagnostic
|
|
52
|
-
|
|
53
|
-
### Connection Pool
|
|
54
|
-
```sql
|
|
55
|
-
SELECT count(*), state
|
|
56
|
-
FROM pg_stat_activity
|
|
57
|
-
GROUP BY state;
|
|
58
|
-
```
|
|
59
|
-
| State | Count | Status |
|
|
60
|
-
|-------|-------|--------|
|
|
61
|
-
| Active | 20 | ✅ |
|
|
62
|
-
| Idle | 75 | ⚠️ High |
|
|
63
|
-
| Idle in transaction | 5 | ⚠️ |
|
|
64
|
-
|
|
65
|
-
### Slow Queries (Top 5)
|
|
66
|
-
| Query | Avg Time | Calls |
|
|
67
|
-
|-------|----------|-------|
|
|
68
|
-
| SELECT... | 4.2s | 1200/day |
|
|
69
|
-
|
|
70
|
-
### Missing Indexes
|
|
71
|
-
- FK `orders.user_id` - No index!
|
|
72
|
-
- `users.email` - Frequent WHERE
|
|
73
|
-
|
|
74
|
-
### Table Bloat
|
|
75
|
-
| Table | Size | Bloat | Action |
|
|
76
|
-
|-------|------|-------|--------|
|
|
77
|
-
| orders | 10GB | 30% | VACUUM |
|
|
78
|
-
|
|
79
|
-
### Cache Hit Ratio
|
|
80
|
-
- Buffer: **95%** ✅ (target: >99%)
|
|
81
|
-
- Index: **88%** ⚠️
|
|
82
|
-
|
|
83
|
-
### Action Plan
|
|
84
|
-
1. **Immediate:** Add missing FK indexes
|
|
85
|
-
2. **This week:** VACUUM bloated tables
|
|
86
|
-
3. **This month:** Upgrade connection pool
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## POOL MODE - Connection Management
|
|
91
|
-
|
|
92
|
-
### PgBouncer Config
|
|
93
|
-
```ini
|
|
94
|
-
[databases]
|
|
95
|
-
mydb = host=localhost port=5432 dbname=mydb
|
|
96
|
-
|
|
97
|
-
[pgbouncer]
|
|
98
|
-
pool_mode = transaction
|
|
99
|
-
max_client_conn = 1000
|
|
100
|
-
default_pool_size = 20
|
|
101
|
-
reserve_pool_size = 5
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### App Connection Pooling
|
|
105
|
-
```typescript
|
|
106
|
-
// Prisma
|
|
107
|
-
datasource db {
|
|
108
|
-
provider = "postgresql"
|
|
109
|
-
url = env("DATABASE_URL")
|
|
110
|
-
connection_limit = 10
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## BACKUP MODE - Disaster Recovery
|
|
117
|
-
|
|
118
|
-
### Daily Backup Script
|
|
119
|
-
```bash
|
|
120
|
-
#!/bin/bash
|
|
121
|
-
pg_dump -Fc mydb > backup_$(date +%Y%m%d).dump
|
|
122
|
-
aws s3 cp backup_*.dump s3://backups/postgres/
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### WAL Archiving (PITR)
|
|
126
|
-
```ini
|
|
127
|
-
# postgresql.conf
|
|
128
|
-
archive_mode = on
|
|
129
|
-
archive_command = 'aws s3 cp %p s3://wal-archive/%f'
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Restore Procedure
|
|
133
|
-
```bash
|
|
134
|
-
# 1. Stop app
|
|
135
|
-
# 2. Restore base backup
|
|
136
|
-
pg_restore -d mydb backup.dump
|
|
137
|
-
|
|
138
|
-
# 3. Replay WAL to point-in-time
|
|
139
|
-
recovery_target_time = '2024-01-15 14:30:00'
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## SCHEMA MODE - Design
|
|
145
|
-
|
|
146
|
-
### Partitioning (Large Tables)
|
|
147
|
-
```sql
|
|
148
|
-
CREATE TABLE orders (
|
|
149
|
-
id SERIAL,
|
|
150
|
-
created_at TIMESTAMP,
|
|
151
|
-
...
|
|
152
|
-
) PARTITION BY RANGE (created_at);
|
|
153
|
-
|
|
154
|
-
CREATE TABLE orders_2024_q1 PARTITION OF orders
|
|
155
|
-
FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Denormalization Strategy
|
|
159
|
-
```sql
|
|
160
|
-
-- Store product_name in order_items for history
|
|
161
|
-
-- Even if products.name changes, order history intact
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## PERFORMANCE TARGETS
|
|
167
|
-
|
|
168
|
-
| Optimization | Expected |
|
|
169
|
-
|--------------|----------|
|
|
170
|
-
| Query speed | 90-98% faster |
|
|
171
|
-
| Index creation | 15-20 min/1M rows |
|
|
172
|
-
| Health check savings | $4K/month typical |
|
|
173
|
-
| Cache hit ratio | >99% target |
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## SAFETY
|
|
178
|
-
- ✅ Always backup before changes
|
|
179
|
-
- ✅ Test migrations on staging
|
|
180
|
-
- ✅ Use CONCURRENTLY for indexes
|
|
181
|
-
- ✅ Transactions for multi-step ops
|
|
182
|
-
|
|
183
|
-
> **Key Takeaway:** Turn 45s queries into 0.8s. Design production-ready schemas. Get actionable health reports.
|
|
184
|
-
"""
|
|
185
|
-
|
|
186
|
-
# ---
|
|
187
|
-
# USAGE:
|
|
188
|
-
# /db optimize slow dashboard query
|
|
189
|
-
# /db schema design for order history
|
|
190
|
-
# /db health check production
|
|
191
|
-
# /db backup strategy PITR
|
|
192
|
-
# /db pool connection exhaustion
|
|
1
|
+
description = "Database admin with health check and optimization (Database Admin Agent)"
|
|
2
|
+
|
|
3
|
+
prompt = """
|
|
4
|
+
# 🗄️ DATABASE ADMIN AGENT
|
|
5
|
+
|
|
6
|
+
Database task:
|
|
7
|
+
|
|
8
|
+
**Task:** {{args}}
|
|
9
|
+
|
|
10
|
+
## MODE DETECTION
|
|
11
|
+
|
|
12
|
+
| Mode | Trigger | Output |
|
|
13
|
+
|------|---------|--------|
|
|
14
|
+
| **QUERY** | "query", "sql" | Optimized SQL + EXPLAIN |
|
|
15
|
+
| **SCHEMA** | "schema", "design" | DDL + indexes + constraints |
|
|
16
|
+
| **OPTIMIZE** | "slow", "optimize" | Index strategy, query rewrite |
|
|
17
|
+
| **HEALTH** | "health", "check" | Full diagnostic report |
|
|
18
|
+
| **BACKUP** | "backup", "recovery" | PITR, WAL, restore |
|
|
19
|
+
| **POOL** | "connection", "pool" | PgBouncer, pooling config |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## OPTIMIZE MODE - Query Performance
|
|
24
|
+
|
|
25
|
+
### EXPLAIN ANALYZE Template
|
|
26
|
+
```sql
|
|
27
|
+
EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
|
|
28
|
+
SELECT ...
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Optimization Report
|
|
32
|
+
| Metric | Before | After | Improvement |
|
|
33
|
+
|--------|--------|-------|-------------|
|
|
34
|
+
| Execution | 45s | 0.8s | **98% faster** |
|
|
35
|
+
| Rows scanned | 10M | 1K | Index usage |
|
|
36
|
+
| Buffer hits | 20% | 95% | Cache improved |
|
|
37
|
+
|
|
38
|
+
### Index Recommendations
|
|
39
|
+
```sql
|
|
40
|
+
-- Missing index detected
|
|
41
|
+
CREATE INDEX CONCURRENTLY idx_orders_created_at
|
|
42
|
+
ON orders(created_at);
|
|
43
|
+
|
|
44
|
+
-- Covering index for query
|
|
45
|
+
CREATE INDEX idx_users_orders
|
|
46
|
+
ON users(id) INCLUDE (name, email);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## HEALTH MODE - Full Diagnostic
|
|
52
|
+
|
|
53
|
+
### Connection Pool
|
|
54
|
+
```sql
|
|
55
|
+
SELECT count(*), state
|
|
56
|
+
FROM pg_stat_activity
|
|
57
|
+
GROUP BY state;
|
|
58
|
+
```
|
|
59
|
+
| State | Count | Status |
|
|
60
|
+
|-------|-------|--------|
|
|
61
|
+
| Active | 20 | ✅ |
|
|
62
|
+
| Idle | 75 | ⚠️ High |
|
|
63
|
+
| Idle in transaction | 5 | ⚠️ |
|
|
64
|
+
|
|
65
|
+
### Slow Queries (Top 5)
|
|
66
|
+
| Query | Avg Time | Calls |
|
|
67
|
+
|-------|----------|-------|
|
|
68
|
+
| SELECT... | 4.2s | 1200/day |
|
|
69
|
+
|
|
70
|
+
### Missing Indexes
|
|
71
|
+
- FK `orders.user_id` - No index!
|
|
72
|
+
- `users.email` - Frequent WHERE
|
|
73
|
+
|
|
74
|
+
### Table Bloat
|
|
75
|
+
| Table | Size | Bloat | Action |
|
|
76
|
+
|-------|------|-------|--------|
|
|
77
|
+
| orders | 10GB | 30% | VACUUM |
|
|
78
|
+
|
|
79
|
+
### Cache Hit Ratio
|
|
80
|
+
- Buffer: **95%** ✅ (target: >99%)
|
|
81
|
+
- Index: **88%** ⚠️
|
|
82
|
+
|
|
83
|
+
### Action Plan
|
|
84
|
+
1. **Immediate:** Add missing FK indexes
|
|
85
|
+
2. **This week:** VACUUM bloated tables
|
|
86
|
+
3. **This month:** Upgrade connection pool
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## POOL MODE - Connection Management
|
|
91
|
+
|
|
92
|
+
### PgBouncer Config
|
|
93
|
+
```ini
|
|
94
|
+
[databases]
|
|
95
|
+
mydb = host=localhost port=5432 dbname=mydb
|
|
96
|
+
|
|
97
|
+
[pgbouncer]
|
|
98
|
+
pool_mode = transaction
|
|
99
|
+
max_client_conn = 1000
|
|
100
|
+
default_pool_size = 20
|
|
101
|
+
reserve_pool_size = 5
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### App Connection Pooling
|
|
105
|
+
```typescript
|
|
106
|
+
// Prisma
|
|
107
|
+
datasource db {
|
|
108
|
+
provider = "postgresql"
|
|
109
|
+
url = env("DATABASE_URL")
|
|
110
|
+
connection_limit = 10
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## BACKUP MODE - Disaster Recovery
|
|
117
|
+
|
|
118
|
+
### Daily Backup Script
|
|
119
|
+
```bash
|
|
120
|
+
#!/bin/bash
|
|
121
|
+
pg_dump -Fc mydb > backup_$(date +%Y%m%d).dump
|
|
122
|
+
aws s3 cp backup_*.dump s3://backups/postgres/
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### WAL Archiving (PITR)
|
|
126
|
+
```ini
|
|
127
|
+
# postgresql.conf
|
|
128
|
+
archive_mode = on
|
|
129
|
+
archive_command = 'aws s3 cp %p s3://wal-archive/%f'
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Restore Procedure
|
|
133
|
+
```bash
|
|
134
|
+
# 1. Stop app
|
|
135
|
+
# 2. Restore base backup
|
|
136
|
+
pg_restore -d mydb backup.dump
|
|
137
|
+
|
|
138
|
+
# 3. Replay WAL to point-in-time
|
|
139
|
+
recovery_target_time = '2024-01-15 14:30:00'
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## SCHEMA MODE - Design
|
|
145
|
+
|
|
146
|
+
### Partitioning (Large Tables)
|
|
147
|
+
```sql
|
|
148
|
+
CREATE TABLE orders (
|
|
149
|
+
id SERIAL,
|
|
150
|
+
created_at TIMESTAMP,
|
|
151
|
+
...
|
|
152
|
+
) PARTITION BY RANGE (created_at);
|
|
153
|
+
|
|
154
|
+
CREATE TABLE orders_2024_q1 PARTITION OF orders
|
|
155
|
+
FOR VALUES FROM ('2024-01-01') TO ('2024-04-01');
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Denormalization Strategy
|
|
159
|
+
```sql
|
|
160
|
+
-- Store product_name in order_items for history
|
|
161
|
+
-- Even if products.name changes, order history intact
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## PERFORMANCE TARGETS
|
|
167
|
+
|
|
168
|
+
| Optimization | Expected |
|
|
169
|
+
|--------------|----------|
|
|
170
|
+
| Query speed | 90-98% faster |
|
|
171
|
+
| Index creation | 15-20 min/1M rows |
|
|
172
|
+
| Health check savings | $4K/month typical |
|
|
173
|
+
| Cache hit ratio | >99% target |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## SAFETY
|
|
178
|
+
- ✅ Always backup before changes
|
|
179
|
+
- ✅ Test migrations on staging
|
|
180
|
+
- ✅ Use CONCURRENTLY for indexes
|
|
181
|
+
- ✅ Transactions for multi-step ops
|
|
182
|
+
|
|
183
|
+
> **Key Takeaway:** Turn 45s queries into 0.8s. Design production-ready schemas. Get actionable health reports.
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
# ---
|
|
187
|
+
# USAGE:
|
|
188
|
+
# /db optimize slow dashboard query
|
|
189
|
+
# /db schema design for order history
|
|
190
|
+
# /db health check production
|
|
191
|
+
# /db backup strategy PITR
|
|
192
|
+
# /db pool connection exhaustion
|
|
193
193
|
# ---
|