# 마이그레이션 043: 이미지 컬럼을 TEXT 타입으로 변경 ## 목적 Base64 인코딩된 이미지 데이터를 저장하기 위해 VARCHAR(500) 컬럼을 TEXT 타입으로 변경합니다. ## 영향받는 테이블 - `item_info.image` - `user_info.image` (존재하는 경우) - 기타 `image`, `img`, `picture`, `photo` 이름을 가진 VARCHAR 컬럼들 ## 실행 방법 ### Docker 환경 ```bash docker exec -i erp-node-db-1 psql -U postgres -d ilshin < db/migrations/043_change_image_columns_to_text.sql ``` ### 로컬 PostgreSQL ```bash psql -U postgres -d ilshin -f db/migrations/043_change_image_columns_to_text.sql ``` ## 확인 방법 ```sql -- 변경된 컬럼 확인 SELECT table_name, column_name, data_type, character_maximum_length FROM information_schema.columns WHERE table_schema = 'public' AND column_name ILIKE '%image%' ORDER BY table_name, column_name; ``` ## 롤백 방법 ```sql -- 필요시 원래대로 되돌리기 (데이터 손실 주의!) ALTER TABLE item_info ALTER COLUMN image TYPE VARCHAR(500); ``` ## 주의사항 - TEXT 타입은 길이 제한이 없으므로 매우 큰 이미지도 저장 가능합니다. - Base64 인코딩은 원본 파일 크기의 약 1.33배가 됩니다. - 5MB 이미지 → Base64: 약 6.7MB → 문자열: 약 6.7백만 자 - 성능상 매우 큰 이미지는 파일 서버에 저장하고 URL만 저장하는 것이 좋습니다.