diff options
author | Neven Jacmenović <neven@nivas.hr> | 2017-06-11 23:41:03 +0200 |
---|---|---|
committer | Neven Jacmenović <neven@nivas.hr> | 2017-06-11 23:41:03 +0200 |
commit | ce7dc44721241b669ae7b5ba6c401dc528248cf4 (patch) | |
tree | dfce4159465b6dd4b86c714edfd59a11555a2a5e | |
parent | e3fb3aba33645ef1c7ba1d1556c806d7c0eb853b (diff) |
delayed indexer init (fix for search not working when addons are enabled)
-rw-r--r-- | cmd/ponzu/main.go | 3 | ||||
-rw-r--r-- | system/db/init.go | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/cmd/ponzu/main.go b/cmd/ponzu/main.go index 25e1694..72f0abf 100644 --- a/cmd/ponzu/main.go +++ b/cmd/ponzu/main.go @@ -154,6 +154,9 @@ var serveCmd = &cobra.Command{ admin.Docs(docsport) } + // init search index + go db.InitSearchIndex() + // save the https port the system is listening on err := db.PutConfig("https_port", fmt.Sprintf("%d", httpsport)) if err != nil { diff --git a/system/db/init.go b/system/db/init.go index a401a2a..173ca6f 100644 --- a/system/db/init.go +++ b/system/db/init.go @@ -98,6 +98,22 @@ func Init() { }() } +// InitSearchIndex initializes Search Index for search to be functional +// This was moved out of db.Init and put to main(), because addoon checker was initializing db together with +// search indexing initialisation in time when there were no item.Types defined so search index was always empty when using addons. +// We still have no guarentee whatsoever that item.Types is defined +// Should be called from a goroutine after SetContent is successful (SortContent requirement) +func InitSearchIndex() { + for t := range item.Types { + err := search.MapIndex(t) + if err != nil { + log.Fatalln(err) + return + } + SortContent(t) + } +} + // SystemInitComplete checks if there is at least 1 admin user in the db which // would indicate that the system has been configured to the minimum required. func SystemInitComplete() bool { |