Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Unified migration CLI

Đang mở
#675 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
go, kubernetes, redis, sql
Lĩnh vực
cli, databases

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ả

enhancement

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:

  1. There are two migration systems
  2. They work differently
  3. They have different commands
  4. They require different operational procedures
  5. 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 apply before 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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của hookdeck/outpost

Tất cả issue của hookdeck/outpost

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.