prisma & supabase 사용하는 방법!

HcKim·2024년 3월 10일
  1. yarn add --dev prisma
  1. npx prisma init
  • 프리즈마를 세팅한다. (파일이 생성된다)
  • .env에 databaseUrl을 추가해야한다.
  • .env에 supabase에서 URI copy해서 넣어주면 된다.
  • URI 안에 비밀번호를 입력해야하는데 초기 설정했을 때 생성한 비밀번호 설정하면 됌
  1. @prisma/client

프리즈마 클라이언트를 추가한다.

  1. 스키마를 짜주면 된다.
  1. npx prisma studio
  • 잘 설치되어있는지 확인하는 방법이다. (localhost5500)
  1. 프리즈마 스키마 모델링을 한다.
model User{
  id Int @id @default(autoincrement())
  email String @unique
  name String
}
model Store {
  id Int @id @default(autoincrement())
  phone String? // tel_no
  address String? // rdn_code_nm
  lat String? // y_dnts
  lng String? // x_cnts
  name String? // upso_nm
  category String?// bizcnd_code
  storeType String? // cob_cod_nm
  foodCertifyName String? // crtfc 
}  
  1. npx prisma migrate dev --name init
  • 마이그레이션 안에 방금 만든 파일이 sql 형태로 생성되어있다.

※ npx prisma studio로 확인해보자

  1. yarn add --dev ts-node
  1. prisma 안에 seed.ts 파일을 만든다.

데이터를 가져와서 supabase에 생성한다.


		const res = await prisma.store.create({
			data: storeData,
		});

import { PrismaClient } from "@prisma/client";
import * as data from "../src/data/store_data.json";

const prisma = new PrismaClient();

async function seedData() {
	data?.["DATA"]?.map(async (store) => {
		const storeData = {
			phone: store?.tel_no,
			address: store?.rdn_code_nm,
			lat: store?.y_dnts,
			lng: store?.x_cnts,
			category: store?.bizcnd_code_nm,
			storeType: store?.cob_code_nm,
			foodCertifyName: store?.crtfc_gbn_nm,
		};
		const res = await prisma.store.create({
			data: storeData,
		});
		console.log(res);
	});
}

async function main() {
	await seedData();
}

main()
	.catch((e) => {
		console.log(e);
		process.exit(1);
	})
	.finally(() => {
		prisma.$disconnect();
	});

  1. npx prisma db seed
    데이터가 시드가 되는 것을 확인할 수 있다.
profile
Javascript를깨부시자

0개의 댓글