From 71a8be05761963a823b5a90c2d02f9649a0eb646 Mon Sep 17 00:00:00 2001 From: Jason Lynch Date: Thu, 16 Apr 2026 15:07:43 -0400 Subject: [PATCH] fix: missing restore config in in-place restore The restore config on the database/instance spec is used to bootstrap a new node. It is not used during an in-place restore, where the active restore configuration is provided as a separate argument. This change takes that into account and propagates that argument through to the `HasRestoreConfig` property on the database resource. Now that we're setting this property correctly, the "post restore" logic triggers as expected. PLAT-564 --- server/internal/database/operations/restore_database.go | 3 ++- server/internal/database/orchestrator.go | 4 ---- server/internal/workflows/plan_restore.go | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/server/internal/database/operations/restore_database.go b/server/internal/database/operations/restore_database.go index 647f7267..4f6cad26 100644 --- a/server/internal/database/operations/restore_database.go +++ b/server/internal/database/operations/restore_database.go @@ -18,6 +18,7 @@ type NodeRestoreResources struct { PrimaryInstance *database.InstanceResources RestoreInstance *database.InstanceResources ReplicaInstances []*database.InstanceResources + RestoreConfig *database.RestoreConfig } func (n *NodeRestoreResources) ToNodeResources() *NodeResources { @@ -32,7 +33,7 @@ func (n *NodeRestoreResources) ToNodeResources() *NodeResources { NodeName: n.NodeName, PrimaryInstanceID: n.PrimaryInstance.InstanceID(), InstanceResources: all, - RestoreConfig: n.PrimaryInstance.RestoreConfig(), + RestoreConfig: n.RestoreConfig, } } diff --git a/server/internal/database/orchestrator.go b/server/internal/database/orchestrator.go index 2f25df46..e2cc087d 100644 --- a/server/internal/database/orchestrator.go +++ b/server/internal/database/orchestrator.go @@ -95,10 +95,6 @@ func (r *InstanceResources) NodeName() string { return r.Instance.Spec.NodeName } -func (r *InstanceResources) RestoreConfig() *RestoreConfig { - return r.Instance.Spec.RestoreConfig -} - func (r *InstanceResources) State() (*resource.State, error) { state := resource.NewState() state.Add(r.Resources...) diff --git a/server/internal/workflows/plan_restore.go b/server/internal/workflows/plan_restore.go index 9bb9d3ea..e9717d38 100644 --- a/server/internal/workflows/plan_restore.go +++ b/server/internal/workflows/plan_restore.go @@ -98,6 +98,7 @@ func (w *Workflows) getRestoreResources( DatabaseName: node.DatabaseName, DatabaseOwner: node.DatabaseOwner, NodeName: node.NodeName, + RestoreConfig: restoreConfig, } for _, instance := range node.Instances { if instance.InstanceID == primaryInstanceID {