fix(server): avoid workspace subdoc guid conflict (#4664)

This commit is contained in:
liuyi 2023-10-19 16:12:57 +08:00 committed by GitHub
parent d835be90cb
commit 7275d417b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -434,6 +434,10 @@ export class DocManager
let lastTurnCount = 100;
while (lastTurnCount === 100) {
const docs = await this.db.snapshot.findMany({
select: {
workspaceId: true,
id: true,
},
skip: turn * 100,
take: 100,
orderBy: {
@ -446,6 +450,12 @@ export class DocManager
const docId = new DocID(doc.id, doc.workspaceId);
if (docId && !docId.isWorkspace && docId.guid !== doc.id) {
await this.db.snapshot.deleteMany({
where: {
id: docId.guid,
workspaceId: doc.workspaceId,
},
});
await this.db.snapshot.update({
where: {
id_workspaceId: {