inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hoàn thiện phương pháp đầu tư gối đầu: Tự động hóa hoàn toàn giao dịch chứng khoán bằng AI giúp buổi sáng đầy phấn khởi - Claude Vibe Coding

Cấu hình tích hợp route FastAPI cho tự động hóa API

llm_decision_logs 저장 실패(실적 컬럼 불일치)를 어떻게 해결할까요?

67

Taihak Kim

1 câu hỏi đã được viết

2

안녕하세요. 강의를 보면서 하나씩 따라해보고 있습니다.

API 자동화와 FastAPI 라우트 통합 구성 강의를 진행 중인데요.

코드를 돌려보니 아래와 같은 에러가 출력됩니다.

LLM 판단 로그 저장 실패: {'code': 'PGRST204', 'details': None, 'hint': None, 'message': "Could not find the 'days_to_earnings' column of 'llm_decision_logs' in the schema cache"}

 

claude에게 물어보니 2가지 방법을 알려주는데요, 해당 컬럼을 추가하는게 맞을까요? 아니면 DB에 저장하지 않도록 코드를 수정하는게 맞을까요?

● 확정입니다. 템플릿 스키마(create_llm_decision_logs.sql)와 실제 DB 스냅샷 모두

llm_decision_logs에 실적 컬럼이 없습니다. 반면 코드는 earnings_date,

days_to_earnings, earnings_estimate 3개를 upsert에 넣습니다 → 컬럼 불일치로 400.

원인 요약

llm_review_service.py에 실적(earnings) 로깅이 추가됐지만, 대응하는 DB

마이그레이션이 이 Supabase에 적용되지 않았습니다. 실제로 이 환경에선 실적 기능이

비활성입니다 (earnings_calendar 테이블 없음 → 404, ALPHA_VANTAGE_API_KEY_EARNINGS

미설정 → 실적 수집 건너뜀). 그래서 이 3개 필드는 사실상 항상 None입니다.

해결 방법 — 두 갈래, 선택해 주세요

A) DB에 컬럼 추가 (실적 기능을 살려둘 경우) — Supabase SQL 편집기에서 실행:

ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS earnings_date DATE;

ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS days_to_earnings INTEGER;

ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS earnings_estimate

DECIMAL(10,2);

(저는 REST 클라이언트라 DDL 실행이 안 돼서, 이 SQL은 직접 돌리셔야 합니다.)

B) 코드에서 실적 3개 필드 제거 (제가 바로 수정) — 현재 DB 스키마와 일치시켜 즉시

해결. 어차피 지금 항상 null인 필드라 로그 손실 없음.

 

python 머신러닝 aws FastAPI 퀀트 cloud-computing claude

Câu trả lời 4

1

frailcatsharklif7441

This is a classic "code and DB out of sync" issue. It sounds like option B, removing the earnings fields from the code, is the cleaner immediate fix, especially since the earnings feature isn't even active. No need to add columns for data that doesn't exist, makes sense. Kinda reminds me of debugging a Snow Rider game sometimes!


0

cheatkeylab

Hello, @frail.catshark.lifn.

Please refer to the answer I wrote below.

If you have any questions while taking the course, please feel free to ask.

Thank you~

1

solitaryx

저도 같은 시점인데, pipeline 실행했는데
2026-07-18 18:39:59,026 - httpx - INFO - HTTP Request: POST https://kufygatpaloobipdnxgc.supabase.co/rest/v1/llm_decision_logs?on_conflict=decision_date%2Cticker "HTTP/2 400 Bad Request"

LLM 판단 로그 저장 실패: {'message': "Could not find the 'days_to_earnings' column of 'llm_decision_logs' in the schema cache", 'code': 'PGRST204', 'hint': None, 'details': None}

column 추가가 필요하다고 뜨네요
수정 방향 알려주시면 감사하겠습니다.

0

cheatkeylab

안녕하세요, @solitaryx님.

위 답변 참고 부탁드립니다.

이후에도 문제 발생 시 편하게 질문주세요~

감사합니다.

0

cheatkeylab

안녕하세요, @Taihak Kim님.

제가 질문을 늦게 봤네요...

결론부터 말씀드리면 A안(DB에 컬럼 추가)이 맞습니다.

다만 ALTER 문을 직접 작성하실 필요는 없고, 프로젝트에 이미 포함되어 있는 마이그레이션 파일을 실행해 주시면 됩니다.

만약 sql/create_earnings_calendar.sql 파일이 보이시지 않는다면 git pull 명령으로 최신 소스를 받아주시면 됩니다.

[원인]

코드의 llm_review_service.py는 LLM 판단 로그를 저장할 때 실적캘린더 관련 3개 컬럼(earnings_date, days_to_earnings, earnings_estimate)을 함께 저장합니다. 그런데 sql/create_llm_decision_logs.sql만 실행한 상태라면 이 3개 컬럼이 테이블에 없어서 PGRST204(컬럼을 찾을 수 없음) 에러가 발생합니다.

[해결 방법]

Supabase 대시보드 → SQL Editor에서 프로젝트의 sql/create_earnings_calendar.sql 파일 내용을 그대로 붙여넣고 실행해 주세요.

스크립트 로직:

- earnings_calendar 테이블 생성 (실적 발표 일정 저장용)

- llm_decision_logs에 실적 컬럼 3개 추가 (ADD COLUMN IF NOT EXISTS라 여러 번 실행해도 안전합니다)

- 실행 후 파이프라인을 다시 돌리면 "LLM 판단 로그 저장 완료"로 정상 저장됩니다.

[참고]

실적캘린더 데이터 수집 자체는 뒤쪽 강의(실적캘린더 개발)에서 ALPHA_VANTAGE_API_KEY_EARNINGS 환경변수와 함께 다룹니다. 아직 그 강의 전이라면 3개 컬럼 값은 당분간 null로 저장되는데, 정상 동작이니 걱정 안 하셔도 됩니다.

B안(코드에서 3개 필드를 제거)은 당장은 에러가 사라지지만, 이후 실적캘린더 강의에서 이 기능을 사용하므로 강의 코드와 어긋나게 됩니다. A안으로 진행해 주세요.

이후에도 문제가 발생하신다면 다시 질문주세요~

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

Taihak Kim님, 주어진 상황에서는 두 가지 해결 방법이 있습니다. 각각의 방법은 시스템을 어떻게 유지할지에 대한 전략에 따라 선택될 수 있습니다.

  1. DB에 컬럼 추가 (A 방법 선택):

    • 만약 미래에 실적 기능을 사용할 계획이 있거나, 해당 기능이 프로젝트에 중요하다고 판단된다면, 이 방법을 선택하실 수 있습니다.
    • Supabase SQL 편집기 등을 통해 아래의 SQL 명령어를 실행하여 필요한 컬럼을 추가하실 수 있습니다:
      
      ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS earnings_date DATE;
      ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS days_to_earnings INTEGER;
      ALTER TABLE llm_decision_logs ADD COLUMN IF NOT EXISTS earnings_estimate DECIMAL(10,2);
      

    • 이 방법은 앞으로 실적 데이터를 저장하고 활용할 준비가 되는 방법입니다.
  2. 코드에서 실적 3개 필드 제거 (B 방법 선택):

    • 실적 기능이 현재 필요 없거나, 해당 데이터가 null일 예정이라면 이 방법을 선택하는 것이 더 효율적일 수 있습니다.
    • 코드에서 earnings_date, days_to_earnings, earnings_estimate 필드를 제거하여 현재 DB와 일치시킬 수 있습니다.
    • 이 방법은 DB 스키마와의 불일치를 즉시 해결하는 방법이며, 추가적인 로그 손실은 없을 것입니다.

각각의 선택은 프로젝트의 현재 및 미래의 요구사항과 관련된 결정이므로, 향후 시스템에서 어떤 기능이 필요한지 고려하여 결정하시길 바랍니다.

추가적으로, Spring Boot와 관련된 데이터베이스 초기화를 포함한 다양한 내용은 여기서 확인하실 수 있습니다. 도움이 필요하시면 언제든 다시 질문해 주세요!

클로드

0

14

2

pip install -r requirements.txt

0

21

2

명령 프롬프트

0

15

1

slack 알림 연동 강의 관련

1

57

2

supabase_key 관련

1

50

3

python run.py 실행시 에러 문제

1

83

2

커서창

1

55

2

cursor 환경

1

60

2

개발 환경 준비와 프로젝트 구조 강의 관련

1

54

2

저장 공간

1

50

2

colab 코드 실행시 error

1

47

2

kaggle notebook에 service key 설정이 누락된 것 같습니다

1

59

2

주말에 실행할 경우 update_economic_data_in_background에 로직 변경 필요성

1

52

1

프로그램 실행시간에 대한 질문

1

56

2

비중 및 매수 종목수 조정.

1

58

2

Claude api가 소식 동기화가 늦는 문제

1

73

2

슬롯 관련 문의

1

48

2

실제 계좌 잔고 및 테스트중에

1

101

4

안녕하세요

1

91

3

매일 사용시 토큰사용량

1

102

2

LLM판단에 문제가 있는 것 같습니다

1

61

2

실습 2인데 커서아이디 같은거 다운로드 안내같은건 따로없나요??

1

48

2

5. 실습 (1) 개발 환경 준비와 프로젝트 구조 03:11

1

93

1

여태까지 발견한 이슈들 공유드립니다.

1

92

2