ORM & Prisma
ORM 🙀
class User extends Model {}
User.init(
{
username: DataTypes.STRING,
birthday: DataTypes.DATE,
},
{ sequelize, modelName: "user" }
);
ORM 중 하나인 sequelize
의 문법이다.
username, birtday라는 속성이 있으며 이것들의 데이터타입은 각각 string과 date다.
이것은 database관점으로 username, birtday라는 field가 있고 string과 date의 타입을 가진다고 생각하면된다.
모델을 생성하면 ORM이 migration 파일을 생성하고, migration 파일이 데이터베이스에 적용된다. ORM에서는 데이터베이스의 구조를 migration file들을 통해 주로 관리함
Prisma 🙀
npm install prisma --save-dev
➡️ 설치
npm install @prisma/client --save
➡️ 설치
npm install dotenv -D
➡️ 환경변수 사용가능
npx prisma
➡️ 잘깔렸으면 명령어 나옴
npx prisma init
➡️ 초기셋팅 명령어
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
DATABASE_URL="mysql://root:비밀번호@localhost:3306/prisma"
SHOW GLOBAL VARIABLES LIKE 'PORT';
➡️ mysql에서 port번호 찾기
npx prisma migrate dev --name init
➡️ schema.prisma에서 table을 만들고나서 명령어실행하면 db에 연동됨
model categories {
id Int @id @default(autoincrement())
name String
drinks drinks[]
}
model drinks {
id Int @id @default(autoincrement())
korean_name String
english_name String
drink_info String
is_new Boolean
category_id Int
categories categories @relation(fields: [category_id], references: [id])
likeBool likeBool[]
images images[]
allergy_drink allergy_drink[]
nutrients nutrients[]
}
model users {
id Int @id @default(autoincrement())
email String @unique
password String
username String?
address String?
phone_number String?
policy_agreed Boolean @default(true)
}
npm i -D prettier-plugin-prisma
명령어를 사용하여 설치하면 참조당하는 곳에
‘참조하는 테이블’ ‘참조하는 테이블’ [] 이라고 쓰면 자동으로 FK가 설정된다..