flnxi-Wu/lib/system-settings-columns.ts

27 lines
1.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 工具方法:确保 system_settings 表的可选列已创建
* 兼容旧版本数据库缺少 enabledBuiltinTemplates / categoryManagedFields 的情况
*/
import { prisma } from '@/lib/prisma'
async function addColumnIfMissing(column: string, type = 'TEXT', defaultValue?: string) {
try {
const defaultClause = defaultValue ? ` DEFAULT ${defaultValue}` : ''
await prisma.$executeRawUnsafe(
`ALTER TABLE "system_settings" ADD COLUMN IF NOT EXISTS "${column}" ${type}${defaultClause}`
)
} catch (error) {
console.error(`[SystemSettings] Failed to ensure column ${column}:`, error)
}
}
export async function ensureSystemSettingsOptionalColumns() {
await addColumnIfMissing('enabledBuiltinTemplates')
await addColumnIfMissing('categoryManagedFields')
// 首页删除按钮模式:ADMIN_ONLY / ALL
await addColumnIfMissing('homeDeleteButtonMode')
await addColumnIfMissing('premiumRatio', 'DOUBLE PRECISION', '10')
await addColumnIfMissing('enablePublicShare', 'BOOLEAN', 'TRUE')
}