mirror of
https://github.com/beilunyang/moemail.git
synced 2026-07-10 15:11:59 +08:00
feat(d1): add indexes for improved query performance
This commit is contained in:
@@ -35,6 +35,7 @@ export const accounts = sqliteTable(
|
||||
compoundKey: primaryKey({
|
||||
columns: [account.provider, account.providerAccountId],
|
||||
}),
|
||||
userIdIdx: index("account_user_id_idx").on(account.userId),
|
||||
})
|
||||
)
|
||||
|
||||
@@ -48,6 +49,7 @@ export const emails = sqliteTable("email", {
|
||||
expiresAt: integer("expires_at", { mode: "timestamp_ms" }).notNull(),
|
||||
}, (table) => ({
|
||||
expiresAtIdx: index("email_expires_at_idx").on(table.expiresAt),
|
||||
userIdIdx: index("email_user_id_idx").on(table.userId),
|
||||
}))
|
||||
|
||||
export const messages = sqliteTable("message", {
|
||||
@@ -69,6 +71,7 @@ export const messages = sqliteTable("message", {
|
||||
.$defaultFn(() => new Date()),
|
||||
}, (table) => ({
|
||||
emailIdIdx: index("message_email_id_idx").on(table.emailId),
|
||||
emailIdReceivedAtTypeIdx: index("message_email_id_received_at_type_idx").on(table.emailId, table.receivedAt, table.type),
|
||||
}))
|
||||
|
||||
export const webhooks = sqliteTable('webhook', {
|
||||
@@ -84,7 +87,9 @@ export const webhooks = sqliteTable('webhook', {
|
||||
updatedAt: integer('updated_at', { mode: 'timestamp_ms' })
|
||||
.notNull()
|
||||
.$defaultFn(() => new Date()),
|
||||
})
|
||||
}, (table) => ({
|
||||
userIdIdx: index('webhook_user_id_idx').on(table.userId),
|
||||
}))
|
||||
|
||||
export const roles = sqliteTable("role", {
|
||||
id: text("id").primaryKey().$defaultFn(() => crypto.randomUUID()),
|
||||
@@ -100,6 +105,7 @@ export const userRoles = sqliteTable("user_role", {
|
||||
createdAt: integer("created_at", { mode: "timestamp" }).$defaultFn(() => new Date()),
|
||||
}, (table) => ({
|
||||
pk: primaryKey({ columns: [table.userId, table.roleId] }),
|
||||
userIdIdx: index("user_role_user_id_idx").on(table.userId),
|
||||
}));
|
||||
|
||||
export const apiKeys = sqliteTable('api_keys', {
|
||||
@@ -111,7 +117,8 @@ export const apiKeys = sqliteTable('api_keys', {
|
||||
expiresAt: integer('expires_at', { mode: 'timestamp' }),
|
||||
enabled: integer('enabled', { mode: 'boolean' }).notNull().default(true),
|
||||
}, (table) => ({
|
||||
nameUserIdUnique: uniqueIndex('name_user_id_unique').on(table.name, table.userId)
|
||||
nameUserIdUnique: uniqueIndex('name_user_id_unique').on(table.name, table.userId),
|
||||
userIdIdx: index('api_keys_user_id_idx').on(table.userId),
|
||||
}));
|
||||
|
||||
export const emailShares = sqliteTable('email_share', {
|
||||
|
||||
Reference in New Issue
Block a user