equelize(MySQL) - 1
공식 문서를 참조했습니다. 😎
https://sequelize.org/master/manual/getting-started.html
모듈 설치 및 CLI 실행
npm install --save sequelize mysql2
npm install -g sequelize-cli
sequelize init
sequelize-cli
를 실행하면 config, models, migrations, seeders 총 4개의 폴더가 생성된다. migrations, seeders에 대한 설명은 다음에 하고, 일단 config, models에 대한 설명을 하겠다.
Config
config 폴더의 config.json
파일은 개발, 테스트, 배포에 대한 데이터베이스의 설정 정보를 가진다.
{
"development": {
"username": "root",
"password": null,
"database": "development",
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": {
"username": "root",
"password": null,
"database": "test",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {
"username": "root",
"password": null,
"database": "production",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
Models
models 폴더의 index.js
파일은 models 폴더 내에 index.js
파일을 제외한 model 파일들을 읽어 이를 데이터베이스에 반영하기 위한 작업을 담당한다. (단, sequelize.sync()
메서드를 실행하기 전까지는 데이터베이스에 반영되지 않는다.)
article.js
파일을 예로 들어보자.
// article.js
module.exports = (sequelize, DataTypes) => sequelize.define('Article', {
title : {
type : DataTypes.STRING(30),
allowNull : false
},
context : {
type : DataTypes.TEXT,
allowNull : false
}
})
app.js
파일에서 sequelize.sync()
를 호출하면 데이터베이스에 테이블이 생성된다. (단, 쿼리문에 IF TABLE EXISTS
이 포함되므로 테이블이 생성된 뒤에 model 파일을 변경하면 변경내역이 반영되지 않는다.)
// app.js
const sequelize = require('sequelize')
sequelize.sync()
데이터 타입
sequelize는 DataTypes
에 데이터 타입에 대한 정보가 저장되어 있다.
// String
DataTypes.STRING(30) // VARCHAR(30), 기본 값은 255
DataTypes.TEXT
// Number
DataTypes.INTEGER
DataTypes.BIGINT
DataTypes.FLOAT
DataTypes.REAL
DataTypes.DOUBLE
DataTypes.DECIMAL
// Boolean
DataTypes.BOOLEAN
// Dates
DataTypes.DATE
DataTypes.DATEONLY // 시간은 제외
// UUIDs
DataTypes.UUID
컬럼 옵션
- type : 데이터 타입.
DataTypes
를 사용하여 설정 - allowNull : Null을 허용
- defaultValue : 기본값 설정
- unique : 유일성 여부.
true
외에compositeIndex
로 복합 유일키 설정 가능 - primaryKey : Primary Key 설정
- autoIncrement : 자동 증가 여부
Author And Source
이 문제에 관하여(equelize(MySQL) - 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@winters0727/SequelizeMySQL-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)