UNPKG

@chimanos/sequelize-replace-enum-postgres

Version:

This package provides the methods needed to replace a PostgreSQL ENUM in Sequelize migrations.

55 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setColumnDefault = exports.renameEnum = exports.dropEnum = exports.setEnumType = exports.removeDefaultFromColumn = exports.createEnum = void 0; /** * Returns the query to create an Enum. */ const createEnum = (name, values) => { return `CREATE TYPE "${name}" AS ENUM ('${values.join("', '")}')`; }; exports.createEnum = createEnum; /** * Get the query to drop default value for a column. */ const removeDefaultFromColumn = (tableName, columnName) => { return `ALTER TABLE "${tableName}" ALTER COLUMN "${columnName}" DROP DEFAULT`; }; exports.removeDefaultFromColumn = removeDefaultFromColumn; /** * Get the query to set a column type to an Enum. */ const setEnumType = (tableName, columnName, enumName) => { return ` ALTER TABLE "${tableName}" ALTER COLUMN "${columnName}" TYPE "${enumName}" USING ("${columnName}"::text::"${enumName}") `; }; exports.setEnumType = setEnumType; /** * Get the query to drop an Enum. */ function dropEnum(name) { return `DROP TYPE "${name}"`; } exports.dropEnum = dropEnum; /** * Get the query to rename an enum. */ const renameEnum = (oldEnumName, newEnumName) => { return `ALTER TYPE "${oldEnumName}" RENAME TO "${newEnumName}"`; }; exports.renameEnum = renameEnum; /** * Get the query to set the default value for a column. */ const setColumnDefault = (tableName, columnName, defaultValue, defaultValueType) => { return ` ALTER TABLE "${tableName}" ALTER COLUMN "${columnName}" SET DEFAULT '${defaultValue}'::"${defaultValueType}" `; }; exports.setColumnDefault = setColumnDefault; //# sourceMappingURL=queries.js.map