ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'capture_ids' in 'field list'
Summary: ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'name' in 'field list'
결과#
RCA 에서 선택된 단기 개선 (1주 이내) 항목만 구현했다. EntityIndexable 의 ancestor name 조회 두 경로(runtime _ancestor_name, batch AncestorCache#preload)에 name 컬럼 존재 정적 가드를 추가하여, name 컬럼이 없는 records 조상에 대한 실패 SQL(Unknown column 'name')과 그로 인한 mysql2 APM error span 노이즈를 제거했다. Blind validation APPROVED.
Pull Requests#
| Repo | PR | Branch |
|---|---|---|
| tesla | https://dev.azure.com/cupix/tesla/_git/tesla/pullrequest/89599 | feature/TSLA-13891 |
변경 내용#
- tesla
app/models/concerns/entity_indexable.rb:_ancestor_name에서klass.where(id:).pick(:name)실행 전에klass.column_names.include?('name')가드 추가.name컬럼이 없는 클래스(Record)면 조회 없이 nil 반환. - tesla
lib/cupix/migrate/entity.rb:AncestorCache#preload의CACHE_ANCESTOR_FIELDS루프에서pluck(:id, :name)실행 전에 동일 가드 추가.name컬럼이 없는 조상은 preload 를 건너뜀. - 결과:
records조상은 두 경로 모두에서 name 조회 SQL 미발행.name컬럼이 있는 team/workspace/building/capture/level/bim/annotation_layer 은 기존 동작 유지.
Cleanup#
bash
cd /home/ec2-user/repos/tesla
git worktree remove /home/ec2-user/error-sweeper/.worktrees/a59d1eba-2e86-4485-82d3-67a37c60a4b2/tesla