Unverified 提交 6e4eb7c4 authored 作者: 顾颢's avatar 顾颢 提交者: GitHub

fix: error on first custom provider deletion (#1110)

fixes #1109 https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md#transactionfunction---function > Transaction functions do not work with async functions. Technically speaking, async functions always return after the first await, which means the transaction will already be committed before any async code executes. <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes a runtime error when deleting the first custom provider by using a synchronous DB transaction. Ensures associated models and the provider are removed atomically without failing. - **Bug Fixes** - Replace async transaction callback with a synchronous one and remove awaits on tx operations to match the DB API and prevent the first-delete error. <!-- End of auto-generated description by cubic. --> Co-authored-by: 's avatar顾颢 <hao.gu@factchina.com>
上级 8211db71
...@@ -250,9 +250,9 @@ export function registerLanguageModelHandlers() { ...@@ -250,9 +250,9 @@ export function registerLanguageModelHandlers() {
} }
// Use a transaction to ensure atomicity // Use a transaction to ensure atomicity
await db.transaction(async (tx) => { db.transaction((tx) => {
// 1. Delete associated models // 1. Delete associated models
const deleteModelsResult = await tx const deleteModelsResult = tx
.delete(languageModelsSchema) .delete(languageModelsSchema)
.where(eq(languageModelsSchema.customProviderId, providerId)) .where(eq(languageModelsSchema.customProviderId, providerId))
.run(); .run();
...@@ -261,7 +261,7 @@ export function registerLanguageModelHandlers() { ...@@ -261,7 +261,7 @@ export function registerLanguageModelHandlers() {
); );
// 2. Delete the provider // 2. Delete the provider
const deleteProviderResult = await tx const deleteProviderResult = tx
.delete(languageModelProvidersSchema) .delete(languageModelProvidersSchema)
.where(eq(languageModelProvidersSchema.id, providerId)) .where(eq(languageModelProvidersSchema.id, providerId))
.run(); .run();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论