2017-09-08 8 views
0

postgresのJSONBフィールドのsequelizeの構文を使用してインデックスを作成するにはどうすればよいですか?私はSQLで作成したいJSONB属性でインデックスを作成します。

インデックスは次のようになります。

CREATE INDEX people ON people (cast(people.data->>'id' AS bigint)); 

sequelize構文でこれを達成するにはどうすればよいですか? 私はドキュメントを検索し、例を検索しましたが空白になります。私はこれを行うにはよりエレガントな方法を考え出すことができませんでした

+0

代わりにフィールド名の、あなたは 'あなたのインデックス定義でSequelize.fn'を提供することができます。おそらく 'Sequelize.fn(" CAST "、Sequelize.col(" data "))'のようなものを使うことができます。私はその構文を知らないので、可能な限りヒントとして残しておきます。 –

答えて

0

、afterSyncフックを使用して終了:

 afterSync(options, done) { 
      co(function*() { 
       yield sequelize.query(
        'CREATE INDEX people ON people (cast(people.data->>\'id\' AS bigint));' 
       ); 
      }) 
      .then(() => done()) 
      .catch(err => done(err)) 
     } 
関連する問題