/** * @type {import('node-pg-migrate').ColumnDefinitions | undefined} */ export const shorthands = undefined; /** * @param pgm {import('node-pg-migrate').MigrationBuilder} * @param run {() => void | undefined} * @returns {Promise | void} */ export const up = (pgm) => { // Изменяем тип столбцов с boolean на varchar для хранения строковых значений pgm.alterColumn('profiles', 'smoking', { type: 'varchar(50)', using: 'smoking::text' }); pgm.alterColumn('profiles', 'drinking', { type: 'varchar(50)', using: 'drinking::text' }); // has_kids оставляем boolean, так как у него всего два состояния }; /** * @param pgm {import('node-pg-migrate').MigrationBuilder} * @param run {() => void | undefined} * @returns {Promise | void} */ export const down = (pgm) => { // Возвращаем столбцы к типу boolean pgm.alterColumn('profiles', 'smoking', { type: 'boolean', using: "CASE WHEN smoking = 'regularly' OR smoking = 'sometimes' THEN true ELSE false END" }); pgm.alterColumn('profiles', 'drinking', { type: 'boolean', using: "CASE WHEN drinking = 'regularly' OR drinking = 'sometimes' THEN true ELSE false END" }); };