Initialize backend before search server
The backend's Init() must be called before search.Init() because buildIndexes() calls storage.GetResourceStats() which requires the database connection to be established. Previously, backend.Init() was called by ResourceServer.Init() through the Lifecycle hooks, but now search.Init() runs before ResourceServer is created. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Rafael Paulovic
co-authored by
Claude Opus 4.5
parent
785cc739ee
commit
0a61846b5e
@@ -159,6 +159,13 @@ func NewResourceServer(opts ServerOptions) (resource.ResourceServer, resource.Se
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize the backend before creating search server (it needs the DB connection)
|
||||
if serverOptions.Lifecycle != nil {
|
||||
if err := serverOptions.Lifecycle.Init(context.Background()); err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to initialize backend: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
search, err := resource.NewSearchServer(opts.SearchOptions, serverOptions.Backend, opts.AccessClient, nil, opts.IndexMetrics, opts.OwnsIndexFn)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to initialize search: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user