NodeJS에서 Sequelize ORM을 사용하여 postgreSQL 데이터베이스를 관리하고 있습니다. 테이블에서 JSONB 데이터 유형을 사용하고 있습니다. JSONB 필드에 대한 색인과이 JSON의 속성에 대한 고유 제한 조건이 필요합니다. 내가 여기에 고전 SQL 내 스크립트를해야 할 경우Sequelize로 JSONB 필드에 UNIQUE 제약 조건을 만드는 방법
CREATE TABLE tableJson (id SERIAL PRIMARY KEY,
content JSONB NOT NULL);
CREATE INDEX j_idx ON tableJson USING gin(content jsonb_path_ops);
CREATE UNIQUE INDEX content_name_idx ON tableJson(((content->>'name')::varchar));
나는 INDEX하지만 어떻게 UNIQUE 제약 조건을 처리하는 방법과 테이블을 만드는 방법을 발견했습니다. 내 스크립트 샘플은 다음과 같습니다.
var tableJson = sequelize.define('tableJson', {
content: Sequelize.JSONB
}, {
indexes: [{
fields: ['content'],
using: 'gin',
operator: 'jsonb_path_ops'
}
});
내 문제에 대한 해결책이 있습니까? 그렇지 않다면 아마도 원시 쿼리를 실행하기 위해 sequelize.query 메소드를 사용할 것입니다. 그러나 이것은 매우 진화 적이지 않습니다.
도움이 될 것입니다.