feat(테이블타입): 컬럼 단건 DROP + CreateTableModal flex 레이아웃 수정 #22

Merged
johngreen merged 2 commits from johngreen into main 2026-05-19 06:02:51 +00:00
Contributor

Summary

  • 컬럼 단건 DROP 기능 추가 — ColumnGrid 메뉴를 DropdownMenu 로 교체하고 "컬럼 삭제" 액션 노출
  • 백엔드 DELETE /api/ddl/tables/{table}/columns/{column} — DBeaver 방식 (CASCADE 미사용, FK 참조 시 Postgres 거부 메시지를 그대로 노출)
  • 시스템 테이블/예약 컬럼(id, created_date, updated_date, company_code, writer) 보호 + table_type_columns / column_labels 메타 같이 청소
  • CreateTableModal 다이얼로그 flex 레이아웃 보정 (overflow 로 푸터 가려지던 이슈)

Test plan

  • 일반 컬럼 → "컬럼 삭제" → 확인 다이얼로그 → DB에서 DROP
  • FK 로 참조되는 컬럼 → 삭제 시도 → 친절한 토스트 메시지로 거부
  • 예약 컬럼(id/writer 등) → 백엔드가 거부
  • CreateTableModal — 컬럼 많이 추가해도 푸터 저장 버튼 유지
## Summary - 컬럼 단건 DROP 기능 추가 — ColumnGrid `⋯` 메뉴를 DropdownMenu 로 교체하고 "컬럼 삭제" 액션 노출 - 백엔드 `DELETE /api/ddl/tables/{table}/columns/{column}` — DBeaver 방식 (CASCADE 미사용, FK 참조 시 Postgres 거부 메시지를 그대로 노출) - 시스템 테이블/예약 컬럼(id, created_date, updated_date, company_code, writer) 보호 + `table_type_columns` / `column_labels` 메타 같이 청소 - `CreateTableModal` 다이얼로그 flex 레이아웃 보정 (overflow 로 푸터 가려지던 이슈) ## Test plan - [ ] 일반 컬럼 → "컬럼 삭제" → 확인 다이얼로그 → DB에서 DROP - [ ] FK 로 참조되는 컬럼 → 삭제 시도 → 친절한 토스트 메시지로 거부 - [ ] 예약 컬럼(id/writer 등) → 백엔드가 거부 - [ ] CreateTableModal — 컬럼 많이 추가해도 푸터 저장 버튼 유지
johngreen added 2 commits 2026-05-19 06:02:23 +00:00
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- DdlService.dropColumn: ALTER TABLE ... DROP COLUMN (CASCADE 미사용 → FK 참조 시 Postgres 거부, DBeaver 동일)
- 시스템 테이블 / 예약 컬럼(id/created_date/updated_date/company_code/writer) 보호
- 같은 트랜잭션에서 table_type_columns / column_labels 메타 청소 + ddl_execution_log 기록
- DdlController: DELETE /api/ddl/tables/{table}/columns/{column} (SUPER_ADMIN 전용)
- ddlApi.dropColumn 헬퍼
- ColumnGrid: ... 버튼을 DropdownMenu 로 교체, "컬럼 삭제" destructive 메뉴 아이템
- page.tsx: 컬럼 삭제 확인 다이얼로그 + 핸들러, FK 거부 시 토스트로 안내

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
johngreen merged commit 904fdd33e7 into main 2026-05-19 06:02:51 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gbpark/invyone#22