我一直試圖添加一個GIN索引使用Knex.js在我的表中的一列,但我無法實現這一點。我試圖做這樣的事情 -如何使用Knex.js添加GIN索引
exports.up = function(knex, Promise) {
return knex.schema.createTable('prediction_models', function(table){
table.increments('id');
table.string('model_name').index();
table.jsonb('model_params');
table.timestamp('createdAt').defaultTo(knex.fn.now());
})
.then(createGinIndex());
function createGinIndex() {
return knex.raw('CREATE INDEX modelgin ON public.prediction_models USING GIN (model_params);');
}
};
exports.down = function(knex, Promise) {
return knex.schema.dropTable('prediction_models');
};
我正在使用PostgreSQL數據庫。任何人都可以告訴我,如果這是實現這個的正確方法?如果是,我的代碼有什麼問題,如果不是如何實現呢?謝謝!
感謝您的回覆。我使用的是與你所建議的相同的查詢,但由於某種原因,我無法在同一個遷移中創建索引,我試圖創建一個表(注:我試圖在創建表後創建一個索引)。所以我創建了兩個單獨的遷移(創建表,創建索引),這很好運作 –
@HarshalGangurde,這真的很奇怪......我確實通過https://runkit.com/embed/8fm3z9xzjz9b呈現了查詢,並且在psql裏面運行了它們一個交易,像knex運行它們,一切正常。我會更新答案。 –