데이터베이스 마이그레이션은 잘못 수행될 경우 프로덕션 애플리케이션을 중단시킬 수 있습니다. 이 스킬은 데이터를 보호하고 배포 위험을 최소화하는 가역적이고 무중단 마이그레이션을 생성하기 위한 검증된 가이드라인을 제공합니다.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“backend-migrations”。 name, price, description, category_id 컬럼을 가진 products 테이블을 추가하는 마이그레이션 생성
预期结果:
- 마이그레이션 파일 생성됨: database/migrations/2024_01_15_000001_create_products_table.php
- 컬럼 추가됨: name (string), price (decimal), description (text), category_id (unsignedBigInteger)
- 인덱스 추가됨: 외래 키 성능을 위해 category_id 컬럼 인덱싱
- 타임스탬프 포함됨: created_at 및 updated_at
- 롤백 메서드: products 테이블 완전 삭제
正在使用“backend-migrations”。 기존 users 테이블에 사용자 전화번호를 위한 새 컬럼 추가
预期结果:
- 마이그레이션 파일 생성됨: database/migrations/2024_01_15_000002_add_phone_to_users_table.php
- 컬럼 추가됨: phone_number (string, nullable)
- 무중단 기술: 먼저 nullable로 컬럼 추가
- 인덱스 추가됨: nullable 컬럼에는 인덱스 불필요
- 롤백 메서드: phone_number 컬럼 삭제
正在使用“backend-migrations”。 더 빠른 고객 조회를 위해 orders 테이블에 인덱스 생성
预期结果:
- 마이그레이션 파일 생성됨: database/migrations/2024_01_15_000003_add_customer_id_index_to_orders.php
- 인덱스 타입: customer_id 컬럼에 B-tree 인덱스
- 동시 생성: 잠금을 피하기 위해 CONCURRENTLY 옵션 사용
- 롤백 메서드: customer_id_index 삭제
安全审计
安全All 24 static findings are FALSE POSITIVES. These are documentation/metadata files with no executable code. The detected patterns are text in documentation (URLs, file paths, code formatting backticks, security terminology) that trigger pattern matching but pose no actual security risk. The embedded security audit in skill-report.json confirms this skill is safe.
风险因素
🌐 网络访问 (1)
📁 文件系统访问 (4)
⚙️ 外部命令 (1)
质量评分
你能构建什么
안전한 마이그레이션 패턴
프로덕션 환경에서 데이터 손실 없이 안전하게 롤백할 수 있는 마이그레이션 생성
무중단 배포
서비스 중단 없이 지속적인 배포가 가능한 데이터베이스 변경 계획
마이그레이션 표준
버전 관리 가이드라인을 통해 개발 팀 전체에 일관된 마이그레이션 관행 확립
试试这些提示
name, email, password, timestamps 컬럼을 가진 users 테이블을 추가하는 새 마이그레이션 파일을 생성하세요. 적절한 인덱스를 포함하고 가역적으로 만드세요.
프로덕션의 orders 테이블에 새 컬럼을 추가하세요. 적절한 무중단 기술을 사용하세요. 롤백 로직을 포함하세요.
orders 테이블의 customer_id 컬럼에 인덱스를 생성하세요. 잠금을 피하기 위해 동시 인덱스 생성을 사용하세요.
orders.total 컬럼을 decimal에서 integer로 수정하세요. 하위 호환성을 보장하고 롤백 메서드를 포함하세요.
最佳实践
- 마이그레이션을 완전히 되돌릴 수 있는 down() 메서드를 항상 포함
- 대용량 테이블에서 잠금을 방지하기 위해 동시 인덱스 생성 사용
- 더 안전한 배포를 위해 스키마 변경과 데이터 마이그레이션을 분리
- 배포 전에 프로덕션과 유사한 데이터에서 마이그레이션 테스트
避免
- 프로덕션에 배포된 후 기존 마이그레이션 수정
- 데이터베이스 엔진의 특성을 고려하지 않고 원시 SQL 사용
- down() 메서드를 생략하거나 불완전하게 작성
- 테이블 크기와 잠금 시간을 고려하지 않고 인덱스 생성