fix: add query indexes

This commit is contained in:
Ben Allfree
2025-12-06 22:17:42 -08:00
parent f6ac64aa0c
commit 5b5d1265cf
4 changed files with 8 additions and 8 deletions

View File

@@ -25,7 +25,7 @@ export const listFailedBuilds = adminQuery({
handler: async ctx => {
const failedBuilds = await ctx.db
.query("builds")
.filter(q => q.eq(q.field("status"), "failure"))
.withIndex("by_status", q => q.eq("status", "failure"))
.order("desc")
.collect()

View File

@@ -28,7 +28,7 @@ export const getByHash = query({
handler: async (ctx, args) => {
const build = await ctx.db
.query("builds")
.filter(q => q.eq(q.field("buildHash"), args.buildHash))
.withIndex("by_buildHash", q => q.eq("buildHash", args.buildHash))
.unique()
return build ?? null
},
@@ -146,7 +146,7 @@ export const upsertBuild = internalMutation({
// Check if build already exists with this hash
const existingBuild = await ctx.db
.query("builds")
.filter(q => q.eq(q.field("buildHash"), args.buildHash))
.withIndex("by_buildHash", q => q.eq("buildHash", args.buildHash))
.unique()
const { status, buildHash, config, flags } = args
@@ -205,7 +205,7 @@ export const ensureBuildFromConfig = mutation({
const existingBuild = await ctx.db
.query("builds")
.filter(q => q.eq(q.field("buildHash"), buildHash))
.withIndex("by_buildHash", q => q.eq("buildHash", buildHash))
.unique()
if (existingBuild) {

View File

@@ -11,7 +11,7 @@ export const list = query({
return await ctx.db
.query("profiles")
.filter(q => q.eq(q.field("userId"), userId))
.withIndex("by_userId", q => q.eq("userId", userId))
.collect()
},
})
@@ -21,7 +21,7 @@ export const listPublic = query({
handler: async ctx => {
const allProfiles = await ctx.db
.query("profiles")
.filter(q => q.eq(q.field("isPublic"), true))
.withIndex("by_isPublic", q => q.eq("isPublic", true))
.collect()
return allProfiles.sort((a, b) => (b.flashCount ?? 0) - (a.flashCount ?? 0))
},

View File

@@ -49,8 +49,8 @@ export const userSettingsFields = {
export const schema = defineSchema({
...authTables,
profiles: defineTable(profileFields),
builds: defineTable(buildFields),
profiles: defineTable(profileFields).index("by_userId", ["userId"]).index("by_isPublic", ["isPublic"]),
builds: defineTable(buildFields).index("by_buildHash", ["buildHash"]).index("by_status", ["status"]),
plugins: defineTable(pluginFields).index("by_slug", ["slug"]),
userSettings: defineTable(userSettingsFields).index("by_user", ["userId"]),
})