로컬 PostgreSQL 17 및 pgvector 0.8.1 환경으로 전환 - #98
Conversation
📝 WalkthroughWalkthrough로컬 DB 실행 기준이 PostgreSQL 17과 pgvector 0.8.1로 전환되었습니다. Compose, 초기화 SQL, Local/Test 연결 기본값, Benchmark 환경 검증이 갱신되었습니다. 실행 문서, 설계 문서, 검증 결과도 함께 추가되었습니다. Changes로컬 PostgreSQL 17 환경 전환
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/design/Gimini-3-`#97-postgresql17-pgvector-local-environment.md:
- Line 164: Update the prohibited-string search command so finding any
deprecated configuration causes failure: negate the rg result or wrap it in an
explicit conditional that exits with status 1 when matches are found, while
preserving the existing search patterns and paths.
In `@docs/local-db.md`:
- Line 212: Update the 상세 설계 Markdown link so the `#` in the referenced filename
is URL-encoded as `%23`, preserving the complete
`Gimini-3-#97-postgresql17-pgvector-local-environment.md` filename in the
target.
In `@docs/test-results/Gimini-3-`#97-postgresql17-pgvector-local-environment.md:
- Around line 1-20: 문서의 검증 결과에 Swagger 수동 테스트 결과를 추가하고, Gradle 자동 테스트 결과와 함께 성공
여부 및 확인 내용을 기록하세요. Swagger 검증이 적용되지 않는 경우에는 그 사유를 명시하고 관련 예외 기준을 확인하세요. 파일명은
docs/test-results의 {github아이디}-#{이슈번호}-{설명}.md 규칙을 따르도록 점검하고 필요하면 수정하세요.
In `@README.md`:
- Around line 10-13: README의 PostgreSQL 시작 절차에서 docker compose ps 다음에 postgres
서비스가 healthy가 될 때까지 명시적으로 대기하는 단계를 추가하세요. healthy 상태 확인이 완료된 후에만 ./gradlew
bootRun이 실행되도록 순서를 명확히 하고, 기존 compose 명령은 필요한 범위에서 유지하세요.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4201b432-916c-4876-a00b-abc46c0af387
📒 Files selected for processing (14)
.env.example.gitignoreREADME.mddocker-compose.ymldocker/opensql/Dockerfiledocker/opensql/init-and-start.shdocker/opensql/vars.ymldocker/postgres/init/001-enable-vector.sqldocs/design/Gimini-3-#97-postgresql17-pgvector-local-environment.mddocs/local-db.mddocs/test-results/Gimini-3-#97-postgresql17-pgvector-local-environment.mdsrc/main/resources/application-local.ymlsrc/main/resources/application-test.ymlsrc/test/java/com/opensource/docgrid/domain/embedding/benchmark/EmbeddingJobClaimPerformanceBenchmark.java
💤 Files with no reviewable changes (3)
- docker/opensql/init-and-start.sh
- docker/opensql/Dockerfile
- docker/opensql/vars.yml
| ~~~bash | ||
| docker compose config | ||
| git status --short --ignored | ||
| rg '14\.6|pgsql-14|opensql_data|linux/amd64' docker-compose.yml docker README.md src/main src/test |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
금지 문자열 검색을 실패 조건으로 만드세요.
rg는 금지 문자열을 찾으면 종료 코드 0을 반환합니다. 현재 명령은 오래된 설정이 남아 있어도 성공으로 처리될 수 있습니다. ! rg ... 또는 명시적인 if rg ...; then exit 1; fi 조건을 사용하세요.
권장 수정
-rg '14\.6|pgsql-14|opensql_data|linux/amd64' docker-compose.yml docker README.md src/main src/test
+! rg '14\.6|pgsql-14|opensql_data|linux/amd64' docker-compose.yml docker README.md src/main src/test📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| rg '14\.6|pgsql-14|opensql_data|linux/amd64' docker-compose.yml docker README.md src/main src/test | |
| ! rg '14\.6|pgsql-14|opensql_data|linux/amd64' docker-compose.yml docker README.md src/main src/test |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/design/Gimini-3-`#97-postgresql17-pgvector-local-environment.md at line
164, Update the prohibited-string search command so finding any deprecated
configuration causes failure: negate the rg result or wrap it in an explicit
conditional that exits with status 1 when matches are found, while preserving
the existing search patterns and paths.
|
|
||
| ## 11. 관련 문서 | ||
|
|
||
| - [상세 설계](design/Gimini-3-#97-postgresql17-pgvector-local-environment.md) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
#97이 포함된 파일 링크를 URL-인코딩하세요.
Markdown URL에서 #는 fragment 시작 문자입니다. 현재 링크는 파일명 전체가 아니라 Gimini-3- 경로와 fragment로 해석될 수 있습니다. 파일명 규칙을 유지하려면 %23을 사용하세요.
권장 수정
-- [상세 설계](design/Gimini-3-#97-postgresql17-pgvector-local-environment.md)
+- [상세 설계](design/Gimini-3-%2397-postgresql17-pgvector-local-environment.md)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - [상세 설계](design/Gimini-3-#97-postgresql17-pgvector-local-environment.md) | |
| - [상세 설계](design/Gimini-3-%2397-postgresql17-pgvector-local-environment.md) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/local-db.md` at line 212, Update the 상세 설계 Markdown link so the `#` in
the referenced filename is URL-encoded as `%23`, preserving the complete
`Gimini-3-#97-postgresql17-pgvector-local-environment.md` filename in the
target.
| # #97 PostgreSQL 17 및 pgvector 0.8.1 로컬 실행 환경 검증 결과 | ||
|
|
||
| ## 1. 검증 개요 | ||
|
|
||
| - 실행 일자: 2026-08-05 | ||
| - Branch: `feature/97` | ||
| - 검증 기준 Commit: `e6f6ef3bf967600129c32b871e426bf272e707a0` | ||
| - Host OS: macOS 26.5.2 | ||
| - Host Architecture: arm64 | ||
| - CPU: Apple M5, 10 Core | ||
| - Docker Engine: 29.4.1 | ||
| - Container Image: `pgvector/pgvector:0.8.1-pg17` | ||
| - Container Image Architecture: `linux/arm64` | ||
| - Database: PostgreSQL 17.8 | ||
| - Vector Extension: pgvector 0.8.1 | ||
| - Database SSL: 비활성화 | ||
|
|
||
| 공급사 설치 Archive, 다운로드 정보와 라이선스는 검증에 사용하지 않았고 Repository 및 Docker | ||
| Build Context에도 포함하지 않았다. | ||
|
|
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Swagger 수동 검증 결과를 포함하세요.
현재 문서는 Docker/SQL 확인과 Gradle 자동 테스트 결과를 기록합니다. Swagger 수동 테스트 결과는 없습니다. DB 전환에 Swagger 검증이 적용되지 않는다면 그 사유를 명시하고 문서 위치의 예외를 확인하세요. 적용된다면 수동 결과를 자동 테스트 결과와 함께 기록하세요.
As per path instructions, docs/test-results/*.md: Test result documents must use the {github아이디}-#{이슈번호}-{설명}.md naming convention and combine Swagger manual-test results with automated-test results.
Also applies to: 114-150
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/test-results/Gimini-3-`#97-postgresql17-pgvector-local-environment.md
around lines 1 - 20, 문서의 검증 결과에 Swagger 수동 테스트 결과를 추가하고, Gradle 자동 테스트 결과와 함께 성공
여부 및 확인 내용을 기록하세요. Swagger 검증이 적용되지 않는 경우에는 그 사유를 명시하고 관련 예외 기준을 확인하세요. 파일명은
docs/test-results의 {github아이디}-#{이슈번호}-{설명}.md 규칙을 따르도록 점검하고 필요하면 수정하세요.
Source: Path instructions
| docker compose pull postgres | ||
| docker compose up -d postgres | ||
| docker compose ps | ||
| ./gradlew bootRun --args='--spring.profiles.active=local' |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
PostgreSQL healthy 상태를 확인한 뒤 Spring Boot를 시작하세요.
docker compose up -d postgres는 healthcheck 완료를 기다리지 않습니다. 현재 docker compose ps는 상태를 표시할 뿐 다음 명령을 차단하지 않습니다. 새 volume 초기화 중에 bootRun이 시작되면 연결 또는 Flyway가 실패할 수 있습니다. 명시적인 healthy 대기를 추가하거나 수동 확인 절차를 분리하세요.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 10 - 13, README의 PostgreSQL 시작 절차에서 docker compose ps
다음에 postgres 서비스가 healthy가 될 때까지 명시적으로 대기하는 단계를 추가하세요. healthy 상태 확인이 완료된 후에만
./gradlew bootRun이 실행되도록 순서를 명확히 하고, 기존 compose 명령은 필요한 범위에서 유지하세요.
변경 내용
pgvector/pgvector:0.8.1-pg17로 전환했습니다..local-vendor/를 Git 추적 대상에서 제외했습니다.변경 이유
공식 OpenSQL은 Rocky Linux 9.7 x86-64 Single 환경에서만 설치·검증할 수 있으므로, macOS 로컬 개발에서는 PostgreSQL 17 + pgvector를 사용하고 공식 OpenSQL 호환성은 별도의 원격 환경에서 확인하도록 경계를 분리합니다.
개발자 영향
localhost:55432app/appDB_SSLMODE=disabledocgrid_postgres17_dataopensql_data볼륨은 자동 이전하거나 삭제하지 않습니다.docker compose down -v는 다른 서비스 볼륨까지 삭제할 수 있으므로 사용하지 않습니다.검증
vector(1024)컬럼과 HNSW cosine index 확인opensql_data볼륨 보존 확인Closes #97
Summary by CodeRabbit
개선 사항
문서