Skip to content

Commit 39f7697

Browse files
committed
refactor(hocuspocus): remove nested-to-flat schema migration
Drop the batch migration, transform helpers, and on-load rewrite now that stored documents use the flat heading schema everywhere Made-with: Cursor
1 parent c9f9acb commit 39f7697

6 files changed

Lines changed: 0 additions & 729 deletions

File tree

packages/hocuspocus.server/package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
"prisma:migrate:dev": "bun --env-file ../../.env.local prisma migrate dev",
2222
"prisma:generate": "bun --env-file ../../.env.local prisma generate --schema=./prisma/schema.prisma",
2323
"fix:migration": "bun scripts/fix-migration.ts",
24-
"migrate:nested-to-flat": "bun --env-file ../../.env.local src/scripts/migrate-nested-to-flat.ts",
25-
"migrate:nested-to-flat:dry": "bun --env-file ../../.env.local src/scripts/migrate-nested-to-flat.ts --dry-run",
2624
"update:packages": "bunx npm-check-updates -u"
2725
},
2826
"keywords": [],

packages/hocuspocus.server/src/config/hocuspocus.config.ts

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { TiptapTransformer } from '@hocuspocus/transformer'
21
import * as Y from 'yjs'
32
import { Database } from '@hocuspocus/extension-database'
43
import { Throttle } from '@hocuspocus/extension-throttle'
@@ -11,8 +10,6 @@ import { RedisSubscriberExtension } from '../extensions/redis-subscriber.extensi
1110
import { DocumentViewsExtension } from '../extensions/document-views.extension'
1211
import { prisma } from '../lib/prisma'
1312
import { dbLogger } from '../lib/logger'
14-
import { isOldSchema, transformNestedToFlat } from '../lib/schema-migration'
15-
import { migrationExtensions } from '../lib/migration-extensions'
1613

1714
export { Database }
1815

@@ -84,36 +81,6 @@ const configureExtensions = () => {
8481

8582
const rawState = doc?.data ?? generateDefaultState()
8683

87-
// On-load migration: convert old nested schema to flat on first open.
88-
// Controlled by ENABLE_SCHEMA_MIGRATION env var — remove after all docs migrated.
89-
if (doc?.data && checkEnvBolean(process.env.ENABLE_SCHEMA_MIGRATION)) {
90-
try {
91-
const ydoc = new Y.Doc()
92-
const buffer = rawState instanceof Buffer ? new Uint8Array(rawState) : rawState
93-
Y.applyUpdate(ydoc, buffer)
94-
const pmJson = TiptapTransformer.fromYdoc(ydoc, 'default') as Record<
95-
string,
96-
unknown
97-
> | null
98-
99-
if (pmJson && isOldSchema(pmJson as any)) {
100-
dbLogger.info({ documentName }, 'On-load schema migration: nested → flat')
101-
const flatJson = transformNestedToFlat(pmJson as any)
102-
const newYdoc = TiptapTransformer.toYdoc(
103-
flatJson as unknown as Record<string, unknown>,
104-
'default',
105-
migrationExtensions
106-
)
107-
return Y.encodeStateAsUpdate(newYdoc)
108-
}
109-
} catch (migrationErr) {
110-
dbLogger.warn(
111-
{ err: migrationErr, documentName },
112-
'Schema migration failed, serving original'
113-
)
114-
}
115-
}
116-
11784
return rawState
11885
} catch (err) {
11986
dbLogger.error({ err }, 'Error fetching document data')

packages/hocuspocus.server/src/lib/__tests__/schema-migration.test.ts

Lines changed: 0 additions & 294 deletions
This file was deleted.

0 commit comments

Comments
 (0)