I am using knex js and postgresql database. I have used a migration file to create a table knex migrate:make create_car_table
. In this I have added a column fuel_ty
Alter column does not work for enum types in knex 0.13.0
.
Also enums are implemented as check constraints, so to change it you need to recreate the.
Something like this:
exports.up = function(knex, Promise) {
return knex.schema.raw(`
ALTER TABLE "car"
DROP CONSTRAINT "car_fuel_type_check",
ADD CONSTRAINT "car_fuel_type_check"
CHECK (fuel_type IN ('HYBRID', 'ELECTRIC', 'PETROL', 'DIESEL'))
`);
};
exports.down = function(knex, Promise) { ... };
You might need to check your constraint name that was originally generated by knex from the DB.
Currently knex.schema.raw
is the only way to modify enums.