- partner_schedules: work_date → start_date/end_date 기간 기반으로 변경 - project_id 컬럼 추가 (projects 테이블 연결, 선택사항) - 프로젝트 조회 API 추가 (GET /projects/active) - 일정 조회 시 기간 겹침 조건으로 필터링 - 체크인 시 기간 내 검증 추가 - 프론트엔드: 시작일/종료일 입력 + 프로젝트 선택 드롭다운 - 마이그레이션 SQL 포함 (scripts/migration-schedule-daterange.sql) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 lines
1.1 KiB
SQL
24 lines
1.1 KiB
SQL
-- Migration: partner_schedules 기간 기반 + 프로젝트 연결
|
|
-- 실행 순서: 1단계 → 2단계 → 3단계 순서대로 실행할 것
|
|
|
|
-- ===== 1단계: 컬럼 변경 + end_date/project_id 추가 =====
|
|
ALTER TABLE partner_schedules
|
|
CHANGE COLUMN work_date start_date DATE NOT NULL,
|
|
ADD COLUMN end_date DATE DEFAULT NULL AFTER start_date,
|
|
ADD COLUMN project_id INT DEFAULT NULL AFTER company_id;
|
|
|
|
-- ===== 2단계: 기존 데이터 채우기 (단일 날짜 → 시작일=종료일) =====
|
|
UPDATE partner_schedules SET end_date = start_date WHERE end_date IS NULL;
|
|
|
|
-- ===== 3단계: NOT NULL로 변경 + 인덱스 재구성 =====
|
|
-- ※ 실행 전 SHOW INDEX FROM partner_schedules; 로 실제 인덱스명 확인 후 맞출 것
|
|
ALTER TABLE partner_schedules
|
|
MODIFY end_date DATE NOT NULL,
|
|
ADD INDEX idx_partner_sched_dates (start_date, end_date),
|
|
ADD INDEX idx_partner_sched_company (company_id, start_date),
|
|
ADD INDEX idx_partner_sched_project (project_id);
|
|
|
|
-- 기존 인덱스가 있다면 별도로 삭제:
|
|
-- ALTER TABLE partner_schedules DROP INDEX idx_work_date;
|
|
-- ALTER TABLE partner_schedules DROP INDEX idx_company_date;
|