콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

Postgres 노드 일반적인 문제#

다음은 Postgres 노드에서 발생할 수 있는 일반적인 오류와 문제 및 이를 해결하거나 문제를 해결하는 단계입니다.

SQL IN 그룹에 매개변수 동적으로 채우기#

Postgres에서는 SQL IN 비교 구조를 사용하여 값 그룹 간의 비교를 수행할 수 있습니다:

1
SELECT color, shirt_size FROM shirts WHERE shirt_size IN ('small', 'medium', 'large');

쿼리 내에서 n8n 표현식을 사용하여 IN 그룹의 값을 동적으로 채울 수 있지만, 쿼리 매개변수와 결합하면 입력이 자동으로 정리되어 추가 보안을 제공합니다.

쿼리 매개변수를 사용하여 IN 그룹 쿼리를 구성하려면:

  1. OperationExecute Query로 설정합니다.
  2. Options에서 Query Parameters를 선택합니다.
  3. 표현식을 사용하여 입력 데이터에서 배열을 선택합니다. 예를 들어, {{ $json.input_shirt_sizes }}.
  4. Query 매개변수에서 빈 괄호를 가진 IN 구조로 쿼리를 작성합니다. 예를 들면:
    1
    SELECT color, shirt_size FROM shirts WHERE shirt_size IN ();
    
  5. 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로 사용자 지정 형식을 설정할 수 있습니다.
인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!