Supabase

[Supabase] Edge-function에 DB에서 타입 가져오기

Gwer 2024. 7. 3. 18:19
반응형

코드를 작성하다 보면 가끔 타입에 대해 신뢰가 가지 않는 경우가 종종있다.

최근에는 Edge-function에 Supabase의 DB에 있는 타입을 활용해야할 때 그랬는데, 간단한 명령어로 현재 설정되어 있는 DB의 데이터 타입들을 가져올 수 있었다.

supabase gen types typescript --project-id "[your project id]" --schema public > supabase.ts

 

 

위의 명령어를 활용하여 내 프로젝트에서 supabase의 type들을 받아올 수 있다.

supabase의 타입들이 해당 파일에 입력된다.

 

이렇게 입력 된 타입들은 아래의 예시와 같다.

이 타입들은 edge-function에서 활용할 수 있다.

import { Database } from "../supabase.ts";
.
.
  const sourceArticles: Database["public"]["Tables"]["table name"]["Insert"][] =
    data.map((element) => {
      return {
        .
        .
        .
      };
    });

이런식으로 타입을 활용하면 DB에 insert혹은 update등 여러가지 작업을 할 때 타입이 맞지않아 문제가 생기는 것을 사전에 방지할 수 있다.

 

조금 번거로운 점은 DB의 구조를 바꿀 때마다 가장 상단의 명령어를 통해서 타입을 불러와줘야한다는 것 인데, 그 번거로움을 감안하고도 나머지 장점이 큰것 같다.

 

 

Generating TypeScript Types | Supabase Docs

How to generate types for your API and Supabase libraries.

supabase.com

 

 

반응형