mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-24 15:39:44 +01:00
core: fix database image is malformed error on updating locked note
This commit is contained in:
@@ -53,7 +53,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
|
||||
.addQuery((c) =>
|
||||
c.insertInto("content_fts").values({
|
||||
content_fts: sql.lit("delete"),
|
||||
rowid: sql.ref("old.rowid"),
|
||||
id: sql.ref("old.id"),
|
||||
data: sql.ref("old.data"),
|
||||
noteId: sql.ref("old.noteId")
|
||||
@@ -67,10 +66,15 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
|
||||
.onTable("content", "main")
|
||||
.after()
|
||||
.addEvent("update", ["data"])
|
||||
.when((eb) =>
|
||||
eb.and([
|
||||
eb.or([eb("new.deleted", "is", null), eb("new.deleted", "==", false)]),
|
||||
eb.or([eb("new.locked", "is", null), eb("new.locked", "==", false)])
|
||||
])
|
||||
)
|
||||
.addQuery((c) =>
|
||||
c.insertInto("content_fts").values({
|
||||
content_fts: sql.lit("delete"),
|
||||
rowid: sql.ref("old.rowid"),
|
||||
id: sql.ref("old.id"),
|
||||
data: sql.ref("old.data"),
|
||||
noteId: sql.ref("old.noteId")
|
||||
@@ -80,12 +84,31 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
|
||||
c.insertInto("content_fts").values({
|
||||
rowid: sql`new.rowid`,
|
||||
id: sql`new.id`,
|
||||
data: sql`IIF(new.locked == 1, '', new.data)`,
|
||||
data: sql`new.data`,
|
||||
noteId: sql`new.noteId`
|
||||
})
|
||||
)
|
||||
.execute();
|
||||
|
||||
await db.schema
|
||||
.createTrigger("content_after_update_locked_or_deleted_content_fts")
|
||||
.temporary()
|
||||
.onTable("content", "main")
|
||||
.after()
|
||||
.addEvent("update", ["deleted", "locked"])
|
||||
.when((eb) =>
|
||||
eb.or([eb("new.deleted", "is", true), eb("new.locked", "is", true)])
|
||||
)
|
||||
.addQuery((c) =>
|
||||
c.insertInto("content_fts").values({
|
||||
content_fts: sql.lit("delete"),
|
||||
id: sql.ref("old.id"),
|
||||
data: sql.ref("old.data"),
|
||||
noteId: sql.ref("old.noteId")
|
||||
})
|
||||
)
|
||||
.execute();
|
||||
|
||||
// notes triggers
|
||||
await db.schema
|
||||
.createTrigger("notes_after_insert_notes_fts")
|
||||
@@ -116,7 +139,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
|
||||
.addQuery((c) =>
|
||||
c.insertInto("notes_fts").values({
|
||||
notes_fts: sql.lit("delete"),
|
||||
rowid: sql.ref("old.rowid"),
|
||||
id: sql.ref("old.id"),
|
||||
title: sql.ref("old.title")
|
||||
})
|
||||
@@ -132,7 +154,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
|
||||
.addQuery((c) =>
|
||||
c.insertInto("notes_fts").values({
|
||||
notes_fts: sql.lit("delete"),
|
||||
rowid: sql.ref("old.rowid"),
|
||||
id: sql.ref("old.id"),
|
||||
title: sql.ref("old.title")
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user