+FTS5 Rebuild

This commit is contained in:
Simon Martens
2026-01-30 16:22:19 +01:00
parent 52fecc0d05
commit 82c3c9c1e3
17 changed files with 1475 additions and 174 deletions

View File

@@ -440,6 +440,7 @@ const (
SESSIONS_TABLE = "sessions"
ACCESS_TOKENS_TABLE = "access_tokens"
DATA_TABLE = "data"
SETTINGS_TABLE = "settings"
IMAGES_TABLE = "images"
FILES_TABLE = "files"
HTML_TABLE = "html"

View File

@@ -269,10 +269,42 @@ func CreateFTS5TableQuery(tablename string, fields ...string) string {
return str
}
func CreateFTS5Tables(app core.App) error {
err1 := createFTS5Table(app, AGENTS_TABLE, AGENTS_FTS5_FIELDS)
err2 := createFTS5Table(app, PLACES_TABLE, PLACES_FTS5_FIELDS)
err3 := createFTS5Table(app, SERIES_TABLE, SERIES_FTS5_FIELDS)
err4 := createFTS5Table(app, ITEMS_TABLE, ITEMS_FTS5_FIELDS)
err5 := createFTS5Table(app, ENTRIES_TABLE, ENTRIES_FTS5_FIELDS)
err6 := createFTS5Table(app, CONTENTS_TABLE, CONTENTS_FTS5_FIELDS)
return errors.Join(err1, err2, err3, err4, err5, err6)
}
func DropFTS5Tables(app core.App) error {
err1 := dropFTS5Table(app, FTS5TableName(AGENTS_TABLE))
err2 := dropFTS5Table(app, FTS5TableName(PLACES_TABLE))
err3 := dropFTS5Table(app, FTS5TableName(SERIES_TABLE))
err4 := dropFTS5Table(app, FTS5TableName(ITEMS_TABLE))
err5 := dropFTS5Table(app, FTS5TableName(ENTRIES_TABLE))
err6 := dropFTS5Table(app, FTS5TableName(CONTENTS_TABLE))
return errors.Join(err1, err2, err3, err4, err5, err6)
}
func FTS5TableName(table string) string {
return FTS5_PREFIX + table
}
func createFTS5Table(app core.App, table string, fields []string) error {
query := CreateFTS5TableQuery(table, fields...)
_, err := app.DB().NewQuery(query).Execute()
return err
}
func dropFTS5Table(app core.App, table string) error {
query := "DROP TABLE IF EXISTS " + table
_, err := app.DB().NewQuery(query).Execute()
return err
}
func InsertFTS5Agent(app core.App, agent *Agent) error {
query := FTS5InsertQuery(app, AGENTS_TABLE, AGENTS_FTS5_FIELDS)
return BulkInsertFTS5Agent(query, agent)

View File

@@ -159,6 +159,17 @@ func Data_All(app core.App) ([]*Data, error) {
return data, err
}
func Settings_Key(app core.App, key string) (*Setting, error) {
ret, err := TableByField[Setting](app, SETTINGS_TABLE, KEY_FIELD, key)
return &ret, err
}
func Settings_All(app core.App) ([]*Setting, error) {
settings := make([]*Setting, 0)
err := app.RecordQuery(SETTINGS_TABLE).All(&settings)
return settings, err
}
func Pages_All(app core.App) ([]*Page, error) {
pages := make([]*Page, 0)
err := app.RecordQuery(PAGES_TABLE).All(&pages)

23
dbmodels/settings.go Normal file
View File

@@ -0,0 +1,23 @@
package dbmodels
import "github.com/pocketbase/pocketbase/core"
type Setting struct {
core.BaseRecordProxy
}
func (s *Setting) Key() string {
return s.GetString(KEY_FIELD)
}
func (s *Setting) SetKey(key string) {
s.Set(KEY_FIELD, key)
}
func (s *Setting) Value() any {
return s.GetRaw(VALUE_FIELD)
}
func (s *Setting) SetValue(value any) {
s.Set(VALUE_FIELD, value)
}