Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d4d2d74811 |
@@ -164,6 +164,11 @@ func (r *installRepository) IsInstalled(ctx context.Context) (bool, error) {
|
||||
|
||||
// upsertSetting 插入或更新设置
|
||||
func (r *installRepository) upsertSetting(ctx context.Context, key, value string) error {
|
||||
// 先确保表存在
|
||||
if err := r.ensureTablesExist(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
|
||||
result := r.db.WithContext(ctx).
|
||||
@@ -189,6 +194,44 @@ func (r *installRepository) upsertSetting(ctx context.Context, key, value string
|
||||
return nil
|
||||
}
|
||||
|
||||
// ensureTablesExist 确保必要的表存在
|
||||
func (r *installRepository) ensureTablesExist(ctx context.Context) error {
|
||||
// 创建 system_settings 表
|
||||
if err := r.db.WithContext(ctx).Exec(`
|
||||
CREATE TABLE IF NOT EXISTS system_settings (
|
||||
id TEXT PRIMARY KEY,
|
||||
category TEXT,
|
||||
key TEXT UNIQUE,
|
||||
value TEXT,
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME
|
||||
)
|
||||
`).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 创建 users 表
|
||||
if err := r.db.WithContext(ctx).Exec(`
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id TEXT PRIMARY KEY,
|
||||
username TEXT UNIQUE,
|
||||
password_hash TEXT,
|
||||
email TEXT,
|
||||
email_verified BOOLEAN,
|
||||
role TEXT,
|
||||
status TEXT,
|
||||
encrypted_config_key TEXT,
|
||||
config_key_nonce TEXT,
|
||||
created_at DATETIME,
|
||||
updated_at DATETIME
|
||||
)
|
||||
`).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func boolToStr(b bool) string {
|
||||
if b {
|
||||
return "true"
|
||||
|
||||
Reference in New Issue
Block a user