backend: create schema migrations for room and recording from v1 to v2 version

This commit is contained in:
juancarmore 2026-02-17 12:47:31 +01:00
parent 3142f9fe79
commit 7378a8f53e
3 changed files with 27 additions and 28 deletions

View File

@ -59,8 +59,8 @@ export const INTERNAL_CONFIG = {
GLOBAL_CONFIG_SCHEMA_VERSION: 1 as SchemaVersion, // MIGRATION_REV: 1771328577054
USER_SCHEMA_VERSION: 1 as SchemaVersion, // MIGRATION_REV: 1771328577054
API_KEY_SCHEMA_VERSION: 1 as SchemaVersion, // MIGRATION_REV: 1771328577054
ROOM_SCHEMA_VERSION: 1 as SchemaVersion, // MIGRATION_REV: 1771328577054
RECORDING_SCHEMA_VERSION: 1 as SchemaVersion // MIGRATION_REV: 1771328577054
ROOM_SCHEMA_VERSION: 2 as SchemaVersion, // MIGRATION_REV: 1771328577054
RECORDING_SCHEMA_VERSION: 2 as SchemaVersion // MIGRATION_REV: 1771328577054
};
// This function is used to set private configuration values for testing purposes.

View File

@ -1,20 +1,19 @@
import { SchemaMigrationMap } from '../models/migration.model.js';
import { MeetRecordingDocument } from '../models/mongoose-schemas/recording.schema.js';
import { MeetRecordingEncodingPreset, MeetRecordingLayout } from '@openvidu-meet/typings';
import { generateSchemaMigrationName, SchemaMigrationMap, SchemaTransform } from '../models/migration.model.js';
import { meetRecordingCollectionName, MeetRecordingDocument } from '../models/mongoose-schemas/recording.schema.js';
const recordingMigrationV1ToV2Name = generateSchemaMigrationName(meetRecordingCollectionName, 1, 2);
const recordingMigrationV1ToV2Transform: SchemaTransform<MeetRecordingDocument> = () => ({
$set: {
layout: MeetRecordingLayout.GRID,
encoding: MeetRecordingEncodingPreset.H264_720P_30
}
});
/**
* Schema migrations for MeetRecording.
* Key format: schema_{collection}_v{from}_to_v{to}
*
* Example:
*
* const recordingMigrationV1ToV2Name = generateSchemaMigrationName('MeetRecording', 1, 2);
*
* const recordingMigrationV1ToV2Transform: SchemaTransform<MeetRecordingDocument> = () => ({
* $set: {
* quality: 'standard'
* }
* });
*/
export const recordingMigrations: SchemaMigrationMap<MeetRecordingDocument> = new Map([
// [recordingMigrationV1ToV2Name, recordingMigrationV1ToV2Transform]
[recordingMigrationV1ToV2Name, recordingMigrationV1ToV2Transform]
]);

View File

@ -1,20 +1,20 @@
import { SchemaMigrationMap } from '../models/migration.model.js';
import { MeetRoomDocument } from '../models/mongoose-schemas/room.schema.js';
import { MeetRecordingEncodingPreset, MeetRecordingLayout } from '@openvidu-meet/typings';
import { generateSchemaMigrationName, SchemaMigrationMap, SchemaTransform } from '../models/migration.model.js';
import { meetRoomCollectionName, MeetRoomDocument } from '../models/mongoose-schemas/room.schema.js';
const roomMigrationV1ToV2Name = generateSchemaMigrationName(meetRoomCollectionName, 1, 2);
const roomMigrationV1ToV2Transform: SchemaTransform<MeetRoomDocument> = () => ({
$set: {
'config.captions': { enabled: true },
'config.recording.layout': MeetRecordingLayout.GRID,
'config.recording.encoding': MeetRecordingEncodingPreset.H264_720P_30
}
});
/**
* Schema migrations for MeetRoom.
* Key format: schema_{collection}_v{from}_to_v{to}
*
* Example:
*
* const roomMigrationV1ToV2Name = generateSchemaMigrationName('MeetRoom', 1, 2);
*
* const roomMigrationV1ToV2Transform: SchemaTransform<MeetRoomDocument> = () => ({
* $set: {
* maxParticipants: 100
* }
* });
*/
export const roomMigrations: SchemaMigrationMap<MeetRoomDocument> = new Map([
// [roomMigrationV1ToV2Name, roomMigrationV1ToV2Transform]
[roomMigrationV1ToV2Name, roomMigrationV1ToV2Transform]
]);