Object Relational Mapping
object ↔ orm ↔ relational Database
둘사이의 통역사/중개자 역할을 담당하는 orm ~ 둘사이의 관계를 매핑 해주는 도구
orm을 이용하면 관계형데이터베이스의 엔티티, 레코드 접근할 때 마치
자바스크립트 객체, 클래스를 다루듯이 취급할 수 있다
객체에서 값 속성은 데이터베이스에서 필드라고 볼 수 있다.
자바스크립트로 관계형데이터베이스 접근 할 수 있다.
생각하는 방법 접근하는 방법
객체지향 관계지향 다른데 orm이 효율을 높여준다.
가독성
nodeJS에서 mysql을 사용할 때 raw Query문을 사용하지 않고 더욱 쉽게 다룰 수 있도록
도와주는 라이브러리
sequelize는 ORM(Object-Relational Mapping)로 분류
지원 RDBMS
Postgres, Mysql, MariaDB, SQLite, Microsoft SQL Server
PRIMARY KEY 로 이용하는 id , 생성일시나 변경일시를 작성하는 created_at, updated_at 자동생성
new Sequelize
연결 부분
db.define
스키마 작성 메소드
.create
insert in
.findAll
select * where
가까이 하기 해답은 여기!
https://sequelize.org/master/manual/migrations.html, https://sequelize.org/master/manual/migrations.html
Association 연관지는것 조인관련 4가지 타입 HasOne Belongs to Has many Belongs to Many
Transaction 일련의 작업단위로 하나하나의 쿼리의 조합을 작업단위로 보고 실패 롤백 성공했으면 커밋
dependencies 실제 어플리케이션 필요
dev dependencies 개발환경에서만 필요
콘피그 구분 왜 구분 ?
테스트, 개발, 실제배포 환경 구분
어떤작업? 스키마를 실제 디비에 심어주는 작업
기능을 하나 하나 덧붙일때 마다 스키마가 변경되면 기록이 되어야한다
깃커밋처럼 마이그레이션을 기록을 할수 있다.
해당 기록에 따라 언두를 할 수도 있고 가장 최근 마이그레이션 취소 전 스키마로 돌아간다
언두는 롤백같은 개념
모델은 단수로 표기를 하지만 시퀄라이즈 하면 알아서 복수로 바꿔준다
프로젝트 초기 단계를 자동으로 설정해주는 것