@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
JavaScript
;
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