fix: handle setting migrations in v2.2.6

This commit is contained in:
MohamedAliBouhaouala 2025-04-25 16:42:37 +01:00
parent 808f33b5a1
commit 4c9f7b470f
3 changed files with 80 additions and 57 deletions

View File

@ -817,49 +817,6 @@ const removeDefaultStorageHelper = async ({ logger }: MigrationServices) => {
}
};
const addDefaultNluPenaltyFactor = async ({ logger }: MigrationServices) => {
const SettingModel = mongoose.model<Setting>(Setting.name, settingSchema);
try {
await SettingModel.updateOne(
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
},
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
value: 0.95,
type: SettingType.number,
config: {
min: 0,
max: 1,
step: 0.01,
},
weight: 2,
},
{
upsert: true,
},
);
logger.log('Successfuly added the default NLU penalty factor setting');
} catch (err) {
logger.error('Unable to add the default NLU penalty factor setting');
}
};
const removeDefaultNluPenaltyFactor = async ({ logger }: MigrationServices) => {
const SettingModel = mongoose.model<Setting>(Setting.name, settingSchema);
try {
await SettingModel.deleteOne({
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
});
logger.log('Successfuly removed the default NLU penalty factor setting');
} catch (err) {
logger.error('Unable to remove the default local storage helper setting');
}
};
module.exports = {
async up(services: MigrationServices) {
await updateOldAvatarsPath(services);
@ -873,7 +830,6 @@ module.exports = {
await populateUserAvatars(services);
await populateSubscriberAvatars(services);
await addDefaultStorageHelper(services);
await addDefaultNluPenaltyFactor(services);
return true;
},
async down(services: MigrationServices) {
@ -883,7 +839,6 @@ module.exports = {
await migrateAttachmentBlocks(MigrationAction.DOWN, services);
await migrateAttachmentContents(MigrationAction.DOWN, services);
await removeDefaultStorageHelper(services);
await removeDefaultNluPenaltyFactor(services);
return true;
},
};

View File

@ -0,0 +1,68 @@
/*
* Copyright © 2025 Hexastack. All rights reserved.
*
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
*/
import mongoose from 'mongoose';
import settingSchema, { Setting } from '@/setting/schemas/setting.schema';
import { SettingType } from '@/setting/schemas/types';
import { MigrationServices } from '../types';
const addDefaultNluPenaltyFactor = async ({ logger }: MigrationServices) => {
const SettingModel = mongoose.model<Setting>(Setting.name, settingSchema);
try {
await SettingModel.updateOne(
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
},
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
value: 0.95,
type: SettingType.number,
config: {
min: 0,
max: 1,
step: 0.01,
},
weight: 2,
},
{
upsert: true,
},
);
logger.log('Successfuly added the default NLU penalty factor setting');
} catch (err) {
logger.error('Unable to add the default NLU penalty factor setting');
}
};
const removeDefaultNluPenaltyFactor = async ({ logger }: MigrationServices) => {
const SettingModel = mongoose.model<Setting>(Setting.name, settingSchema);
try {
await SettingModel.deleteOne({
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
});
logger.log('Successfuly removed the default NLU penalty factor setting');
} catch (err) {
logger.error('Unable to remove the default local storage helper setting');
}
};
module.exports = {
async up(services: MigrationServices) {
await addDefaultNluPenaltyFactor(services);
return true;
},
async down(services: MigrationServices) {
await removeDefaultNluPenaltyFactor(services);
return true;
},
};

View File

@ -38,6 +38,18 @@ export const DEFAULT_SETTINGS = [
},
weight: 2,
},
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
value: 0.95,
type: SettingType.number,
config: {
min: 0,
max: 1,
step: 0.01,
},
weight: 3,
},
{
group: 'chatbot_settings',
label: 'default_storage_helper',
@ -50,18 +62,6 @@ export const DEFAULT_SETTINGS = [
idKey: 'name',
labelKey: 'name',
},
weight: 3,
},
{
group: 'chatbot_settings',
label: 'default_nlu_penalty_factor',
value: 0.95,
type: SettingType.number,
config: {
min: 0,
max: 1,
step: 0.01,
},
weight: 4,
},
{