🐛 Fixed SQLite time field issue
This commit is contained in:
@@ -8,7 +8,6 @@ import (
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"sync"
|
||||
"time"
|
||||
"voidraft/internal/models"
|
||||
|
||||
"github.com/wailsapp/wails/v3/pkg/application"
|
||||
@@ -33,8 +32,8 @@ CREATE TABLE IF NOT EXISTS documents (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
title TEXT NOT NULL,
|
||||
content TEXT DEFAULT '∞∞∞text-a',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
is_deleted INTEGER DEFAULT 0,
|
||||
is_locked INTEGER DEFAULT 0
|
||||
)`
|
||||
@@ -46,8 +45,8 @@ CREATE TABLE IF NOT EXISTS extensions (
|
||||
enabled INTEGER NOT NULL DEFAULT 1,
|
||||
is_default INTEGER NOT NULL DEFAULT 0,
|
||||
config TEXT DEFAULT '{}',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
)`
|
||||
|
||||
// Key bindings table
|
||||
@@ -59,8 +58,8 @@ CREATE TABLE IF NOT EXISTS key_bindings (
|
||||
key TEXT NOT NULL,
|
||||
enabled INTEGER NOT NULL DEFAULT 1,
|
||||
is_default INTEGER NOT NULL DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(command, extension)
|
||||
)`
|
||||
|
||||
@@ -72,8 +71,8 @@ CREATE TABLE IF NOT EXISTS themes (
|
||||
type TEXT NOT NULL,
|
||||
colors TEXT NOT NULL,
|
||||
is_default INTEGER NOT NULL DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(type, is_default)
|
||||
)`
|
||||
)
|
||||
@@ -363,10 +362,6 @@ func getSQLTypeAndDefault(t reflect.Type) (string, string) {
|
||||
case reflect.String:
|
||||
return "TEXT", "''"
|
||||
default:
|
||||
// 处理特殊类型
|
||||
if t == reflect.TypeOf(time.Time{}) {
|
||||
return "DATETIME", "CURRENT_TIMESTAMP"
|
||||
}
|
||||
return "TEXT", "NULL"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,15 +141,14 @@ func (ds *DocumentService) GetDocumentByID(id int64) (*models.Document, error) {
|
||||
}
|
||||
|
||||
doc := &models.Document{}
|
||||
var createdAt, updatedAt string
|
||||
var isDeleted, isLocked int
|
||||
|
||||
err := ds.databaseService.db.QueryRow(sqlGetDocumentByID, id).Scan(
|
||||
&doc.ID,
|
||||
&doc.Title,
|
||||
&doc.Content,
|
||||
&createdAt,
|
||||
&updatedAt,
|
||||
&doc.CreatedAt,
|
||||
&doc.UpdatedAt,
|
||||
&isDeleted,
|
||||
&isLocked,
|
||||
)
|
||||
@@ -161,14 +160,6 @@ func (ds *DocumentService) GetDocumentByID(id int64) (*models.Document, error) {
|
||||
return nil, fmt.Errorf("failed to get document by ID: %w", err)
|
||||
}
|
||||
|
||||
// 转换时间字段
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", createdAt); err == nil {
|
||||
doc.CreatedAt = t
|
||||
}
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", updatedAt); err == nil {
|
||||
doc.UpdatedAt = t
|
||||
}
|
||||
|
||||
// 转换布尔字段
|
||||
doc.IsDeleted = isDeleted == 1
|
||||
doc.IsLocked = isLocked == 1
|
||||
@@ -190,15 +181,15 @@ func (ds *DocumentService) CreateDocument(title string) (*models.Document, error
|
||||
doc := &models.Document{
|
||||
Title: title,
|
||||
Content: "∞∞∞text-a\n",
|
||||
CreatedAt: now,
|
||||
UpdatedAt: now,
|
||||
CreatedAt: now.String(),
|
||||
UpdatedAt: now.String(),
|
||||
IsDeleted: false,
|
||||
IsLocked: false,
|
||||
}
|
||||
|
||||
// 执行插入操作
|
||||
result, err := ds.databaseService.db.Exec(sqlInsertDocument,
|
||||
doc.Title, doc.Content, doc.CreatedAt.Format("2006-01-02 15:04:05"), doc.UpdatedAt.Format("2006-01-02 15:04:05"))
|
||||
doc.Title, doc.Content, doc.CreatedAt, doc.UpdatedAt)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create document: %w", err)
|
||||
}
|
||||
@@ -380,14 +371,13 @@ func (ds *DocumentService) ListAllDocumentsMeta() ([]*models.Document, error) {
|
||||
var documents []*models.Document
|
||||
for rows.Next() {
|
||||
doc := &models.Document{IsDeleted: false}
|
||||
var createdAt, updatedAt string
|
||||
var isLocked int
|
||||
|
||||
err := rows.Scan(
|
||||
&doc.ID,
|
||||
&doc.Title,
|
||||
&createdAt,
|
||||
&updatedAt,
|
||||
&doc.CreatedAt,
|
||||
&doc.UpdatedAt,
|
||||
&isLocked,
|
||||
)
|
||||
|
||||
@@ -395,14 +385,6 @@ func (ds *DocumentService) ListAllDocumentsMeta() ([]*models.Document, error) {
|
||||
return nil, fmt.Errorf("failed to scan document row: %w", err)
|
||||
}
|
||||
|
||||
// 转换时间字段
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", createdAt); err == nil {
|
||||
doc.CreatedAt = t
|
||||
}
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", updatedAt); err == nil {
|
||||
doc.UpdatedAt = t
|
||||
}
|
||||
|
||||
doc.IsLocked = isLocked == 1
|
||||
documents = append(documents, doc)
|
||||
}
|
||||
@@ -432,14 +414,13 @@ func (ds *DocumentService) ListDeletedDocumentsMeta() ([]*models.Document, error
|
||||
var documents []*models.Document
|
||||
for rows.Next() {
|
||||
doc := &models.Document{IsDeleted: true}
|
||||
var createdAt, updatedAt string
|
||||
var isLocked int
|
||||
|
||||
err := rows.Scan(
|
||||
&doc.ID,
|
||||
&doc.Title,
|
||||
&createdAt,
|
||||
&updatedAt,
|
||||
&doc.CreatedAt,
|
||||
&doc.UpdatedAt,
|
||||
&isLocked,
|
||||
)
|
||||
|
||||
@@ -447,14 +428,6 @@ func (ds *DocumentService) ListDeletedDocumentsMeta() ([]*models.Document, error
|
||||
return nil, fmt.Errorf("failed to scan document row: %w", err)
|
||||
}
|
||||
|
||||
// 转换时间字段
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", createdAt); err == nil {
|
||||
doc.CreatedAt = t
|
||||
}
|
||||
if t, err := time.Parse("2006-01-02 15:04:05", updatedAt); err == nil {
|
||||
doc.UpdatedAt = t
|
||||
}
|
||||
|
||||
doc.IsLocked = isLocked == 1
|
||||
documents = append(documents, doc)
|
||||
}
|
||||
|
||||
@@ -67,8 +67,8 @@ func (ts *ThemeService) initializeDefaultThemes() error {
|
||||
Type: models.ThemeTypeDark,
|
||||
Colors: *models.NewDefaultDarkTheme(),
|
||||
IsDefault: true,
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
CreatedAt: time.Now().String(),
|
||||
UpdatedAt: time.Now().String(),
|
||||
}
|
||||
|
||||
// 创建默认浅色主题
|
||||
@@ -77,8 +77,8 @@ func (ts *ThemeService) initializeDefaultThemes() error {
|
||||
Type: models.ThemeTypeLight,
|
||||
Colors: *models.NewDefaultLightTheme(),
|
||||
IsDefault: true,
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
CreatedAt: time.Now().String(),
|
||||
UpdatedAt: time.Now().String(),
|
||||
}
|
||||
|
||||
// 插入默认主题
|
||||
|
||||
Reference in New Issue
Block a user