1- import { TiptapTransformer } from '@hocuspocus/transformer'
21import * as Y from 'yjs'
32import { Database } from '@hocuspocus/extension-database'
43import { Throttle } from '@hocuspocus/extension-throttle'
@@ -11,8 +10,6 @@ import { RedisSubscriberExtension } from '../extensions/redis-subscriber.extensi
1110import { DocumentViewsExtension } from '../extensions/document-views.extension'
1211import { prisma } from '../lib/prisma'
1312import { dbLogger } from '../lib/logger'
14- import { isOldSchema , transformNestedToFlat } from '../lib/schema-migration'
15- import { migrationExtensions } from '../lib/migration-extensions'
1613
1714export { 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' )
0 commit comments