У меня проблема со следующей миграцией в KnexJS, работающей с PostgreSQL:
exports.up = (knex) => {
knex.raw('CREATE EXTENSION IF NOT EXISTS "uuid-ossp"');
return knex.schema.createTable('car_brands', (table) => {
table.uuid('brandId').unique().notNullable().primary().defaultTo(knex.raw('uuid_generate_v4()'));
table.string('name').notNullable().unique();
table.timestamp('created_at').notNullable().defaultTo(knex.raw('now()'));
table.timestamp('updated_at').notNullable().defaultTo(knex.raw('now()'));
});
};
exports.down = (knex) => {
knex.raw('drop extension if exists "uuid-ossp"');
return knex.schema.dropTable('car_brands');
};
Я использую тип UUID
для значений по умолчанию, используя
defaultTo(knex.raw('uuid_generate_v4()'))
.
Однако при выполнении вышеуказанной миграции:
knex migrate:latest --env development --knexfile knexfile.js --debug true
я получаю сообщение об ошибке:
function uuid_generate_v4() does not exist
Знаете ли вы, почему метод запроса knex.raw()
не работает?