2013-09-03 2 views
1

SequelizeJS를 사용하여 nodejs 애플리케이션 용 모델을 생성하고 있습니다. 시작 파일에 내 모델 정의가 정의되어 있으며 응용 프로그램 시작시 sequelize.sync()가됩니다. 내 질문은 필드에 추가되는 데이터에 많은 제약이 있습니다. 예 : 'Source'라는 필드가 Sequelize.ENUM 유형이고 그 값은 이들 중 하나 여야합니다 [ 'pod' , 'must', 'cap']. sqlite에서 이러한 제약 조건을 DB에 직접 둘 수있는 옵션이 있습니다. 내가 어떻게 후속편을 만들어 내는가? sync() 중에 수행 할 수 있습니까?sequelize model 'define'에서 sqlite에 제약 조건 추가하기

답변

0
sequelize.define('model', { 
    source1: Sequelize.ENUM('pod', 'must', 'cap'), 
    source2: { 
     type: Sequelize.ENUM, 
     values: ['pod', 'must', 'cap'] 
    } 

위의 코드는 사용자가 지정한 값으로 제한되는 후편에 열거 형을 만듭니다. 그러나, 필드 수단이 sqlite does not natively support enums는 단지 텍스트로 생성한다 : 그들은 삽입 전에

..., `status` TEXT, ... 

그러나 값은 여전히, 자바 스크립트에서 검증 될 것이다. 에서는

의 MySQL/값에 한정되는 실제 ENUM이 생성 될 PG : 열거 타입을 사용

... `status` ENUM('pod', 'must', 'cap'), ... 

예는 http://sequelizejs.com/documentation

의 문서에서 찾을 수있다
관련 문제