Unified migration CLI
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Start by reading the existing migratesql commands and the outpost-migrate-redis CLI to understand their entry points and migration workflows. Then map how startup currently triggers SQL migrations and how Redis migrations are planned and applied. Done means one outpost migrate interface can list, plan, apply, and verify both migration types, with startup behavior matching the stated explicit-control goal.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Current State
Two Separate Migration Systems
SQL Migrations
- Runs automatically at application startup
- Uses golang-migrate
- Commands:
migratesql up,migratesql down,migratesql force - No plan/preview capability
- No manual control - just happens on boot
Redis Migrations
- Separate binary:
outpost-migrate-redis - Must be run manually before deployment
- Requires maintenance window
- Commands:
list,plan,apply,verify,cleanup,unlock - Full plan/preview capability
The Problem: Two Different Experiences
Different Mental Models
| Aspect | SQL | Redis |
|---|---|---|
| When to run | "It just happens" | "I need to run this manually" |
| Visibility | Hidden in startup logs | Explicit CLI output |
| Planning | Can't preview changes | plan shows exactly what will change |
| Verification | Hope it worked | verify confirms success |
| Recovery | Dig through logs, use force |
Clear unlock command |
Different Commands
# SQL - minimal interface
migratesql up
migratesql down 1
migratesql force 3
# Redis - full interface
outpost-migrate-redis list
outpost-migrate-redis plan
outpost-migrate-redis apply --yes
outpost-migrate-redis verify
outpost-migrate-redis cleanup
outpost-migrate-redis unlock
Different Deployment Workflows
SQL: No action needed - migrations run on app startup
# Just deploy, migrations happen automatically
kubectl apply -f deployment.yaml
Redis: Requires explicit step before deployment
# 1. Run migration job (maintenance window)
kubectl apply -f migration-job.yaml
kubectl wait --for=condition=complete job/outpost-migrate-redis
# 2. Then deploy
kubectl apply -f deployment.yaml
Cognitive Overhead
Users must understand:
- There are two migration systems
- They work differently
- They have different commands
- They require different operational procedures
- One is automatic, one is manual
End Goal
Unified experience:
outpost migrate list # Shows ALL migrations (SQL + Redis)
outpost migrate plan # Shows what WILL change
outpost migrate apply # Applies ALL pending migrations
outpost migrate verify # Verifies success
Explicit control:
- No auto-run at startup
- Application refuses to start if migrations are pending
- User explicitly runs
outpost migrate applybefore deployment
Single workflow:
# 1. Run migrations (same command regardless of what's pending)
outpost migrate apply --yes
# 2. Deploy application
outpost serve
- Ngôn ngữ chính
- Go
- Star
- 1.1k
- Fork
- 70
- Merge trung bình
- 1 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 56
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của hookdeck/outpost
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
hookdeck/outpost#1117 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của hookdeck/outpost
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 81/100
apache/rocketmq-dashboard#6895 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
agent-butler-finding chore
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
jordansmall/spindrift#5466 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 87/100
777genius/agent-notifications#490 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
devantler-tech/ksail#7836 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
keyxmakerx/Chronicle#1469 ·
Maintainer thường phản hồi trong vòng 1 ngày