Postgres 노드 일반적인 문제#
다음은 Postgres 노드에서 발생할 수 있는 일반적인 오류와 문제 및 이를 해결하거나 문제를 해결하는 단계입니다.
SQL IN
그룹에 매개변수 동적으로 채우기#
Postgres에서는 SQL IN
비교 구조를 사용하여 값 그룹 간의 비교를 수행할 수 있습니다:
1 |
|
쿼리 내에서 n8n 표현식을 사용하여 IN
그룹의 값을 동적으로 채울 수 있지만, 쿼리 매개변수와 결합하면 입력이 자동으로 정리되어 추가 보안을 제공합니다.
쿼리 매개변수를 사용하여 IN
그룹 쿼리를 구성하려면:
- Operation을 Execute Query로 설정합니다.
- Options에서 Query Parameters를 선택합니다.
- 표현식을 사용하여 입력 데이터에서 배열을 선택합니다. 예를 들어,
{{ $json.input_shirt_sizes }}
. - Query 매개변수에서 빈 괄호를 가진
IN
구조로 쿼리를 작성합니다. 예를 들면:1
SELECT color, shirt_size FROM shirts WHERE shirt_size IN ();
IN
괄호 안에서, 표현식을 사용하여 쿼리 매개변수 배열의 항목 수에 따라 인덱스 기반 자리 표시자(예:$1
,$2
,$3
)를 동적으로 생성합니다. 자리 표시자 변수는 1부터 인덱스가 시작되므로 각 배열 인덱스를 1씩 증가시킬 수 있습니다:1
SELECT color, shirt_size FROM shirts WHERE shirt_size IN ({{ $json.input_shirt_sizes.map((i, pos) => "$" + (pos+1)).join(', ') }});
이 기술을 사용하면 n8n은 배열의 항목 수에 따라 IN
값에 대한 올바른 수의 준비된 문장 자리 표시자를 자동으로 생성합니다.
타임스탬프 및 시간대 작업#
n8n과 Postgres가 타임스탬프 및 시간대 데이터를 해석하는 방식으로 인한 복잡함을 피하기 위해 다음 일반적인 팁을 따르십시오:
- 날짜 저장 및 전달 시 UTC 사용: UTC를 사용하면 서로 다른 표현 및 시스템 간 날짜를 변환할 때 시간대 변환에 대한 혼란을 피하는 데 도움이 됩니다.
- 실행 시간대 설정: n8n에서 환경 변수 (자체 호스팅용) 또는 설정 (n8n Cloud용)를 사용하여 전역 시간대를 설정합니다. 워크플로우 설정에서 워크플로우 특정 시간대를 설정할 수 있습니다.
- ISO 8601 형식 사용: ISO 8601 형식은 날짜, 월, 연도, 시간, 분, 초를 표준화된 문자열로 인코딩합니다. n8n은 노드 간 날짜를 문자열로 전달하며 Luxon을 사용하여 날짜를 구문 분석합니다. ISO 8601로 명시적으로 캐스팅해야 하는 경우 Date & Time 노드를 사용하고 문자열
yyyy-MM-dd'T'HH:mm:ss
로 사용자 지정 형식을 설정할 수 있습니다.