Files
immich/server/src/sql-tools/comparers/enum.comparer.ts
2026-02-12 17:59:00 -05:00

39 lines
917 B
TypeScript

import { Comparer, DatabaseEnum, Reason } from 'src/sql-tools/types';
export const compareEnums = (): Comparer<DatabaseEnum> => ({
onMissing: (source) => [
{
type: 'EnumCreate',
enum: source,
reason: Reason.MissingInTarget,
},
],
onExtra: (target) => [
{
type: 'EnumDrop',
enumName: target.name,
reason: Reason.MissingInSource,
},
],
onCompare: (source, target) => {
if (source.values.toString() !== target.values.toString()) {
// TODO add or remove values if the lists are different or the order has changed
const reason = `enum values has changed (${source.values} vs ${target.values})`;
return [
{
type: 'EnumDrop',
enumName: source.name,
reason,
},
{
type: 'EnumCreate',
enum: source,
reason,
},
];
}
return [];
},
});