티스토리 뷰
TIL: Alembic으로 임베딩 차원 변경 마이그레이션, 인덱스 opclass, 권한 이슈 정리
오늘 한 것
- 기존 테이블 A, B를 각각
_bak으로 리네임해 백업. - 동일 스키마와 제약·인덱스를 유지한 채 새 테이블을 생성하고
embedding컬럼만VECTOR(384)로 변경하는 마이그레이션 설계. - Alembic 실행 위치, downgrade 방법, 인덱스 opclass 의미, 권한 이슈 트러블슈팅 정리.
Alembic 마이그레이션 설계 포인트
- 대상 스키마:
sample - 변경 범위:
- 특정 테이블 백업 후 재생성.
- 백업 절차:
A→A_bakB→B_bak
- 새 테이블 생성:
- 기존 정의 유지, 단
embedding만VECTOR(384)로 변경.
- 기존 정의 유지, 단
- 인덱스/제약(동일 유지):
- HNSW 인덱스:
embedding vector_cosine_opswith(m=16, ef_construction=64)
- HNSW 인덱스:
실행 위치와 리비전 생성
- 실행 위치: 레포 루트에서 실행하면
alembic.ini의script_location = alembic설정에 따라 자동으로alembic/versions/아래 생성됨. - 리비전 생성 예시:
cd /Users/sample alembic revision -m "test" - 새 리비전의
down_revision은 기존 버전으로 설정.
downgrade 사용법
- 현재/이력 확인:
alembic current alembic history --verbose - 한 단계 되돌리기:
alembic downgrade -1
인덱스 opclass(int4_ops, text_ops) 이해
- 핵심: 기본 B-Tree에서 정수/텍스트 컬럼은 opclass를 생략해도 동일 동작.
- INTEGER →
int4_ops - TEXT →
text_ops
- INTEGER →
- 즉, 다음 두 정의는 기능·성능이 실질적으로 동일.
- 생략:
CREATE INDEX ... ON table (document_id); - 명시:
CREATE INDEX ... ON table USING btree (document_id int4_ops);
- 생략:
- opclass를 일부러 바꿀 때만 의미가 달라짐(예:
text_pattern_ops, collation, 다른 인덱스 타입 등).
배운 점
- 기본 B-Tree 인덱스에서는 정수/텍스트 opclass를 명시하지 않아도 동작·성능은 동일.
- Alembic는 루트에서 실행하면 설정 경로를 자동으로 따라가며,
down_revision체인을 정확히 유지해야 안전하게 롤백 가능.
반응형
'개발일지' 카테고리의 다른 글
| [PostgreSQL] Docker에 MeCab 설치하기 (Mac M4 pro 기준) (1) | 2025.09.18 |
|---|---|
| [Airflow] Docker로 시작하는 airflow 사용법 (1) | 2025.09.10 |
| [MongoDB] 원격 서버 DB에 파이썬으로 대용량 데이터 삽입하기(pymongo) (1) | 2024.10.10 |
| [MongoDB] 윈도우에서 MongoDB 7 설치하기(환경변수 설정) (3) | 2024.09.05 |
| [Hadoop & Apache Spark] 하둡과 아파치 스파크-3 초기설정 및 실행/정지 (0) | 2024.06.28 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- hadoop
- docker
- vscode
- Claude
- pandas
- rdflib
- vervel
- Vue3
- TextRank
- 지식그래프
- geospy
- MongoDB
- LLM
- SPARQL
- cursorai
- vertorsearch
- ChatGPT
- PostgreSQL
- Kafka
- Postgis
- python
- 키워드추출
- deepseek
- Encoding
- rdffox
- AWS
- vectorsearch
- pdfmathtranslate
- PEFT
- polars
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함