backend: add room member migrations and update migration registry

This commit is contained in:
juancarmore 2026-02-20 10:15:13 +01:00
parent 7f784af12b
commit a69c8d0239
3 changed files with 34 additions and 1 deletions

View File

@ -2,5 +2,6 @@ export * from './api-key-migrations.js';
export * from './global-config-migrations.js';
export * from './migration-registry.js';
export * from './recording-migrations.js';
export * from './room-member-migrations.js';
export * from './room-migrations.js';
export * from './user-migrations.js';

View File

@ -15,11 +15,17 @@ import {
MeetRecordingDocument,
MeetRecordingModel
} from '../models/mongoose-schemas/recording.schema.js';
import {
meetRoomMemberCollectionName,
MeetRoomMemberDocument,
MeetRoomMemberModel
} from '../models/mongoose-schemas/room-member.schema.js';
import { meetRoomCollectionName, MeetRoomDocument, MeetRoomModel } from '../models/mongoose-schemas/room.schema.js';
import { meetUserCollectionName, MeetUserDocument, MeetUserModel } from '../models/mongoose-schemas/user.schema.js';
import { apiKeyMigrations } from './api-key-migrations.js';
import { globalConfigMigrations } from './global-config-migrations.js';
import { recordingMigrations } from './recording-migrations.js';
import { roomMemberMigrations } from './room-member-migrations.js';
import { roomMigrations } from './room-migrations.js';
import { userMigrations } from './user-migrations.js';
@ -35,6 +41,7 @@ const migrationRegistry: [
CollectionMigrationRegistry<MeetUserDocument>,
CollectionMigrationRegistry<MeetApiKeyDocument>,
CollectionMigrationRegistry<MeetRoomDocument>,
CollectionMigrationRegistry<MeetRoomMemberDocument>,
CollectionMigrationRegistry<MeetRecordingDocument>
] = [
// GlobalConfig - no dependencies, can run first
@ -65,8 +72,14 @@ const migrationRegistry: [
currentVersion: INTERNAL_CONFIG.ROOM_SCHEMA_VERSION,
migrations: roomMigrations
},
// RoomMember - depends on Room (references roomId)
{
collectionName: meetRoomMemberCollectionName,
model: MeetRoomMemberModel,
currentVersion: INTERNAL_CONFIG.ROOM_MEMBER_SCHEMA_VERSION,
migrations: roomMemberMigrations
},
// Recording - depends on Room (references roomId)
// Should be migrated after rooms
{
collectionName: meetRecordingCollectionName,
model: MeetRecordingModel,

View File

@ -0,0 +1,19 @@
import { SchemaMigrationMap } from '../models/migration.model.js';
import { MeetRoomMemberDocument } from '../models/mongoose-schemas/room-member.schema.js';
/**
* Schema migrations for MeetRoomMember.
* Key format: schema_{collection}_v{from}_to_v{to}
*
* Example:
*
* const roomMemberMigrationV1ToV2Name = generateSchemaMigrationName(meetRoomMemberCollectionName, 1, 2);
*
* const roomMemberMigrationV1ToV2Transform: SchemaTransform<MeetRoomMemberDocument> = (roomMember) => {
* roomMember.permissionsUpdatedAt = Date.now();
* return roomMember;
* };
*/
export const roomMemberMigrations: SchemaMigrationMap<MeetRoomMemberDocument> = new Map([
// [roomMemberMigrationV1ToV2Name, roomMemberMigrationV1ToV2Transform]
]);