먼저 라이브러리들을 설치. mysql2의 경우 실제 데이터관련 mysql 을 설치하는게 아님.
그리고 필요한 파일들을 자동으로 생성해주는 init 명령어 입력
npm i mysql2, sequelize
npx sequelize init
처음에 너무 에러가 많이나서 도끼 이모지추가..
const { sequelize } = require("./models");
sequelize
.sync({ force: false })
.then(() => {
console.log(`
🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
🚧🚧 DB연결 성공! 이게되네🚧🚧
🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧🚧
`);
})
.catch((error) => {
console.error(`
🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓
🪓🪓 DB연결 실패! ... 🪓🪓
🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓🪓
`);
});
데이터베이스 모델을 작성하면서 테이블간의 관계도 지정해줘야함. 모델 작성하는 쪽에 적을 수 있음.
(예시)_ Articles 테이블에 있는 "articleId"값을 Comments 테이블에 갖다 넣고, onDelete: "cascade"를 선언해 특정 articleId값이 삭제되면 Comments 테이블에 특정 articleId 들어간 값들도 삭제됨.
// models/articles.js
static associate(models) {
Articles.hasMany(models.Comments, {
foreignKey: "articleId",
onDelete: "cascade",
})}
// models/comments.js
static associate(models) {
Comments.belongsTo(models.Articles, { foreignKey: "articleId" })};
// 만약 이렇게 Articles 테이블에 있는 "articleId"을 Comments 테이블과 관계 지어서 집어 넣고 싶을 때
// Comments 테이블 스키마에 "articleId"를 미리 만들어두면 targetKey 를 지정하지 않아도 됨