콘텐츠로 이동

문제 해결

SQL 텍스트는 실행되었지만 선언한 태그가 어댑터의 실제 행/command 결과와 일치하지 않습니다. 행을 생성하는 문에는 sql.rows, 쓰기에는 sql.command, 결과가 의도적으로 드라이버에 의존하면 unknown 쿼리와 함께 db.execute를 사용하세요. 잘못된 선언에서 쓰기를 rollback해야 한다면 트랜잭션을 사용하세요.

db.tx 안의 모든 작업에는 tx 콜백 핸들을 사용하세요. 자신의 콜백에서 외부 db를 호출하지 말고 콜백이 반환된 뒤 tx를 보존하지도 마세요. 중첩 트랜잭션에는 가장 안쪽 savepoint 핸들이 필요합니다.

직접 어댑터 팩토리에 풀을 전달하지 마세요. createPgPoolDatabase, createMysql2PoolDatabase, 또는 createMariaDbPoolDatabase를 사용하고, 여러 문장이 하나의 물리적 연결을 공유해야 할 때는 db.tx를 사용하세요.

빈 목록은 보편적인 SQL 의미가 없습니다. @braid if로 조건을 보호하거나 애플리케이션을 위한 의도적인 false predicate를 선택하세요.

Inspector가 메타데이터 스냅샷을 만들고 생성 모델은 파생됩니다. 메타데이터/설정을 바꾼 뒤 sqlbraid codegen을 실행하고 sqlbraid codegen --check를 CI에 유지하세요. 생성 출력은 절대 직접 수정하지 마세요.

Completion은 정적 SQL에 대한 메타데이터 증거일 뿐입니다. TypeScript 보간 표현식 내부는 추론하지 않으며, 누락된 메타데이터는 데이터베이스 객체가 유효하지 않다는 증거가 아닙니다. 프로젝트 설정이 검색되는지와 메타데이터 스냅샷이 검증되는지 확인하세요.

SQLite 어댑터는 BRAID_CALL_UNSUPPORTED를 보고합니다. 스트리밍에는 네이티브 문의 iteration protocol이 필요하며, 그렇지 않으면 BRAID_STREAM_UNSUPPORTED를 보고합니다.