prisma
-
prisma client로 현재 data의 값을 수정하는 법Database/Prisma 2024. 2. 1. 15:42
prisma docs post의 like 값을 수정하고 싶다면(eg. +1 or -1) 유니크 키를 통해 데이터에 접근 후 post.like +1 과 같은 행동을 할 수 있다. 하지면 통신 측면에서 값을 조회 후 업데이트 하는 것은 두번 이상의 행위를 하는 것이므로 비효율. update의 increase / decrease를 통해 조회와 동시에 값을 수정 해보자. (cf. string 필드를 추가한다면 https://github.com/prisma/prisma/issues/15269 요거 참고 ) export async function PATCH( req: Request, { params }: { params: { postId: string } } ) { try { const { postId } = pa..
-
[prisma] vercel 배포시 에러카테고리 없음 2023. 8. 17. 16:48
PrismaClientInitializationError: Prisma has detected that this project was built on Vercel, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered. To fix this, make sure to run the `prisma generate` command during the build process. Within the scripts section of your project's package.json file, if there is not already a script named ..
-
[Prisma] provider = "MongoDB" 일 때 모델의 id에 대해Database/Prisma 2023. 8. 3. 15:30
id String @id @default(auto()) @map("_id") @db.ObjectId 1. id 는 이 필드의 문자열(String)타입의 필드 (기본키로 사용 될 것) 2. @id: 이것은 Prisa 스키마에서 해당필드가 db의 기본 키로 사용됨을 지정하는 데코레이터 3. @default(auto()) : 이 데코레이터는 해당 필드가 새로운 레코드를 생성할 때, 자동으로 값을 생성하는 것을 의미함 4.@map("_id") : 이것은 prisma 스키마에서 해당 필드를 MongDB 내부에서 "_id"필드와 매핑하는 것을 의미함. MongoDB는 기본적으로 "_id"라는 이름의 필드를 사용해서 각 문서를 고유하게 식별함 Prisma에서는 이 "_id" 필드를 "id"라는 이름으로 사용하고자 할..
-
[Next.js] pusher 라이브러리카테고리 없음 2023. 8. 2. 10:37
Pusher.js는 실시간 웹 기술을 구현하기 위해 사용되는 클라이언드 사이드 라이브러리. 웹과 앱에서 실시간 데이터를 전송하는데 사용되며, 소켓 통신을 기반으로 작동 됨 Pusher.js의 두 가지 주요 구성 요소 Pusher 객체: 웹에서 사용 가능한 Pusher 라이브러리로, 웹 소켓 연결을 설정하고 실시간 데이터를 주고 받음 Pusher Channels: Pusher는 채널 시스템을 통해 데이터를 전송함. 채널은 특정 주제에 데이터를 게시하고 구독하는데 사용함. client는 원하는 채널에 가입하고 해당 채널로부터 데이터 업데이트를 수신함. pusher를 사용하기 위해서는 API키를 얻어야 함. 이 후 클라이언트와 서버 양쪽에서 pusher라이브러리 로드 웹 소켓을 지원하지 않는 브라우저에서는 p..
-
[Prisma] @id @default(auto()) @map("_id") @db.ObjectId 의미Database/Prisma 2023. 7. 15. 17:43
id String @id @default(auto()) @map("_id") @db.ObjectId 이 문장의 의미 위의 코드는 Prisma ORM에서 데이터베이스 모델을 정의하는 부분입니다. 각 필드의 의미는 다음과 같습니다: id: 데이터베이스에서 고유 식별자로 사용되는 필드입니다. String 타입으로 정의되어 있으며, @id 데코레이터를 통해 이 필드가 식별자임을 나타냅니다. @default(auto())는 이 필드의 기본값을 자동으로 생성하는 설정입니다. @map("_id"): 해당 필드를 데이터베이스에서 "_id"라는 이름으로 매핑합니다. 일부 데이터베이스에서는 기본적으로 "_id"라는 이름의 필드를 사용하는데, Prisma에서는 이를 명시적으로 매핑하기 위해 사용됩니다. @db.Object..
-
[Prisma] 자주 사용하는 명령어 모음CS/데이터베이스 2023. 2. 24. 19:23
1. 마이그레이션 파일 db 덮어쓰기 npx prisma migrate dev // 적용되지 않은 가장 최근의 마이그레이션 파일을 사용합니다 - 없으면 새로 만듬 // migrate는 데이터베이스 내용을 초기화 합니다 2. 임시 마이그레이션 파일 만들기 npx prisma migrate dev --name 파일이름 --create-only 3. 마이그레이션 파일 수정하기 ALTER TABLE "Profile" RENAME COLUMN "biograpy" TO "biography" 4. 임시 마이그레이션 파일 DB에 적용하기 npx prisma migrate dev 5. DB 재설정 (초기화) npx prisma migrate reset 6. 스키마 수정사항 가져오기 npx prisma db pull 7...
-
[Next.js] bcrypt 를 통해 비밀번호 암호화FrontEnd/Next.js 2023. 1. 23. 17:57
bcrypt.hashpw(password,bcrypt.gensalt()) Bcrypt 란? 1999년에 출시된 password-hashing function이다. Blowfish 암호를 기반으로 설계된 암호화 함수이며 현재까지 가장 강력한 해시 매커니즘 중 하나 보안으로 유명한 OpenBSD에서 사용 중 반복횟수를 늘려 연산 속도를 늦출 수 있으므로 연산 능력이 증가하더라고 brute-force 공격 대비 가능 구현이 쉽고 비교적 걍력하다 사용법 1. 설치 yarn add bcrypt 2. 비밀번호 암호화 hash는 동기, hashSync는 비동기 방식 파라미터로 넣은 숫자는 암호화에 사용되는 Salt로, 값이 높을수록 암호화 연산이 증가함.(속도는 느려짐) //비밀번호 암호화 const bcrypt =..
-
Prisma & PlanetScale 설치 및 연결 (yarn, next.js, mysql)Database/Prisma 2022. 12. 4. 18:52
Prisma 설치 vs code extension 에서 prisma 서리 yarn add prisma --dev yarn add @prisma/cli env 파일과 schema.prisma 파일 생성 npx prisma init 생성된 schema.prisma에 데이터 model을 작성해줌 datasource db 안에 provider 속성에 사용할 db 입력 (mysql 등등) env 안에 넣을 DATABASE_URL은 pscale을 통해 db에 연결하면 나오는 ip값을 넣어주면 됨(아래에 자세히 작성) generator client { provider = "prisma-client-js" } datasource db { provider = "mysql" url = env("DATABASE_URL") ..