diff --git a/packages/backend/server/src/data/migrations/1708321519830-refresh-unlimited-workspace-feature.ts b/packages/backend/server/src/data/migrations/1708321519830-refresh-unlimited-workspace-feature.ts new file mode 100644 index 0000000000..347f90ded9 --- /dev/null +++ b/packages/backend/server/src/data/migrations/1708321519830-refresh-unlimited-workspace-feature.ts @@ -0,0 +1,15 @@ +import { PrismaClient } from '@prisma/client'; + +import { FeatureType } from '../../core/features'; +import { upsertLatestFeatureVersion } from './utils/user-features'; + +export class RefreshUnlimitedWorkspaceFeature1708321519830 { + // do the migration + static async up(db: PrismaClient) { + // add unlimited workspace feature + await upsertLatestFeatureVersion(db, FeatureType.UnlimitedWorkspace); + } + + // revert the migration + static async down(_db: PrismaClient) {} +} diff --git a/packages/backend/server/src/data/migrations/utils/user-features.ts b/packages/backend/server/src/data/migrations/utils/user-features.ts index 919d2b2195..35510e5547 100644 --- a/packages/backend/server/src/data/migrations/utils/user-features.ts +++ b/packages/backend/server/src/data/migrations/utils/user-features.ts @@ -3,6 +3,7 @@ import { Prisma, PrismaClient } from '@prisma/client'; import { CommonFeature, FeatureKind, + Features, FeatureType, } from '../../../core/features'; @@ -33,6 +34,16 @@ export async function upsertFeature( } } +export async function upsertLatestFeatureVersion( + db: PrismaClient, + type: FeatureType +) { + const feature = Features.filter(f => f.feature === type); + feature.sort((a, b) => b.version - a.version); + const latestFeature = feature[0]; + await upsertFeature(db, latestFeature); +} + export async function migrateNewFeatureTable(prisma: PrismaClient) { const waitingList = await prisma.newFeaturesWaitingList.findMany(); for (const oldUser of waitingList) {