일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리액트
- sass
- Vue transition
- vuex
- input
- express
- webpack
- CSS
- storybook
- 자바스크립트
- HOC
- MySQL
- TypeScript
- App.vue
- v-html
- Wecode
- State
- ES6
- JavaScript
- 쉬운설명
- nodejs
- 댓글달기
- react
- Vue
- Vue.js
- mapGetters
- jsx
- scss
- 자료구조
- event
- Today
- Total
익명의 개발노트
[sequelize] 정의 및 설치법 본문
Sequelize는 자바스크립트 ORM이다.
간략하게 설명하면 백엔드에서 데이터베이스에 날리는 쿼리를 자바스크립트 객체와 함수로 처리한다.
일반적으로 쿼리 날려 사용하는 것보다는 생산성이 더 뛰어나다고 한다.
단점은 쿼리가 복잡해지면 ORM으로 표현하는데 한계가 있고, 성능이 raw query에 비해 느리다.
대부분의 ORM에서는 이런 경우를 대비하여 raw 쿼리를 실행할 수 있는 방법도 제공하고 있다.
DDL, DML도 정의할 수 있다.
기본작동원리는 모델설정 => DB migration => DB반영
npm install --save sequelize
Sequelize는 Promise 기반이며, 이것을 사용하기 위해서는 DB가 설치되어야 한다.
mysql사용시 mysql 모듈을 설치해주어야 한다.
npm install mysql2
필요하면 더 편하게 해주는 도구인 Sequelize-cli 모듈을 설치하면 된다.
역시 글로벌로 설치해주면 편하다.(설치하려면, sequelize, mysql2가 먼저 설치되어있어야 한다)
글로벌로 설치를 하면 sequelize 명령어를 사용가능하다.
npm install -g sequelize-cli
최초 실행시 명령어를 아래와 같이 친다.
sequelize init
위와 같이 폴더가 생긴다.
config에 DB접속정보를 작성 후 model에 클래스를 정의해준 후 app.js에 Sequelize 실행테스트를 작성해준다.
Sequelize를 연동하는 이유는 /models/index.js 파일에서 정의한 모델들을 바탕으로 실제로 Model을 등록하는 일을 한다.
const models = require("./models/index.js"); //이 부분은 index에서 model에 등록된 테이블을 찾음
models.sequelize.sync().then( () => {
console.log(" DB 연결 성공");
}).catch(err => {
console.log("연결 실패");
console.log(err);
})
npm start하면, 위의 로그가 찍히면 연동에 성공한 것이다.
1) Sequelize-cli
Sequelize-cli를 이용하면 터미널에서 명령어로 모델을 만들 수 있다.
sequelize model:create --name user2 --attributes "user_id:string, password:string"
모델을 만든 후 세부제약 사항은 models폴더에서 작성해 준다.
model변경이 되면 마이그레이션을 해주어야 한다.
sequelize db:migrate
디비에서 생성이 되면 기본적인 seq, createdAt, updatedAt 컬럼은 자동으로 생성해 준다.
2) Sequelize-auto
Sequelize-auto는 Sequelize와 반대로, model을 먼저 작성하지 않고, 디비를 먼저 작성한 후에 실행해주면,
디비정보가 모델에 역으로 저장된다.
실행하려면, 글로벌로 설치하는 것이 좋다.
npm install sequelize-auto
sequelize-auto -h 디비주소 -d 디비명 -u 유저네임 -x DB비번 -p 디비포트번호 -c ./config/config.json -o ./models -C
터미널에서 위 내용을 실행해 주면 Model에 저장된다.
'코딩일기 > TIL' 카테고리의 다른 글
[Sequelize-Transaction] (0) | 2019.10.23 |
---|---|
[Mysql] 원격접속 (0) | 2019.10.23 |
[babel 정리] feat. 실전 리액트 프로그래밍 (0) | 2019.10.07 |
[리팩토링] 배열의 차집합 (0) | 2019.10.07 |
[Sonar Qube] 환경설정 (0) | 2019.10.07 |