43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
/**
|
||
* @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> | 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> | 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"
|
||
});
|
||
};
|