From 529e4a536670c363d8fcb2a0d983b8658af3ef13 Mon Sep 17 00:00:00 2001
From: Gildas Garcia <1122076+djhi@users.noreply.github.com>
Date: Tue, 29 Sep 2026 16:33:05 +0200
Subject: [PATCH] Hide Postgres upgrade for v3 projects (#51024)
## Problem
v3 projects do not support postgres upgrade but the option may appear.
## Solution
Hide the Postgres upgrade for v3 projects
## Summary by CodeRabbit
* **Bug Fixes**
* Projects running on AWS Kubernetes no longer display database upgrade
alerts or read-replica warnings in service version settings. Other
upgrade eligibility and warning conditions remain unchanged.
---
.../ServiceVersions/ServiceVersionsSection.test.tsx | 12 ++++++++++++
.../ServiceVersions/ServiceVersionsSection.tsx | 9 +++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.test.tsx b/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.test.tsx
index 9debbbecc34..6c66d9d6d27 100644
--- a/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.test.tsx
+++ b/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.test.tsx
@@ -11,6 +11,7 @@ const {
mockUseReadReplicas,
mockUseServiceVersions,
mockUseUpgradeEligibility,
+ mockIsAwsK8sCloudProvider,
} = vi.hoisted(() => ({
mockUseFeatures: vi.fn(),
mockUseIsOrioleDb: vi.fn(),
@@ -18,6 +19,7 @@ const {
mockUseReadReplicas: vi.fn(),
mockUseServiceVersions: vi.fn(),
mockUseUpgradeEligibility: vi.fn(),
+ mockIsAwsK8sCloudProvider: vi.fn(),
}))
vi.mock('common', () => ({
@@ -118,6 +120,7 @@ vi.mock('@/hooks/misc/useIsFeatureEnabled', () => ({
vi.mock('@/hooks/misc/useSelectedProject', () => ({
useIsOrioleDb: mockUseIsOrioleDb,
useSelectedProjectQuery: mockUseProject,
+ useIsAwsK8sCloudProvider: mockIsAwsK8sCloudProvider,
}))
describe('ServiceVersionsSection', () => {
@@ -128,6 +131,7 @@ describe('ServiceVersionsSection', () => {
})
mockUseIsOrioleDb.mockReturnValue(false)
mockUseProject.mockReturnValue({ data: { status: 'ACTIVE_HEALTHY' } })
+ mockIsAwsK8sCloudProvider.mockReturnValue(false)
mockUseReadReplicas.mockReturnValue({ data: [{ identifier: 'project-ref' }] })
mockUseUpgradeEligibility.mockReturnValue({
data: {
@@ -276,4 +280,12 @@ describe('ServiceVersionsSection', () => {
rerender()
expect(screen.getByText('Failed to retrieve versions')).toBeInTheDocument()
})
+
+ it('does not offer upgrade for v3 projects', () => {
+ mockIsAwsK8sCloudProvider.mockReturnValue(true)
+
+ render()
+
+ expect(screen.queryByText('Project upgrade available')).not.toBeInTheDocument()
+ })
})
diff --git a/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.tsx b/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.tsx
index b08da20bad0..5a5b2410024 100644
--- a/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.tsx
+++ b/apps/studio/components/interfaces/Settings/General/ServiceVersions/ServiceVersionsSection.tsx
@@ -34,11 +34,16 @@ import { useProjectUpgradeEligibilityQuery } from '@/data/config/project-upgrade
import { useProjectServiceVersionsQuery } from '@/data/projects/project-service-versions'
import { useReadReplicasQuery } from '@/data/read-replicas/replicas-query'
import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
-import { useIsOrioleDb, useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
+import {
+ useIsAwsK8sCloudProvider,
+ useIsOrioleDb,
+ useSelectedProjectQuery,
+} from '@/hooks/misc/useSelectedProject'
export const ServiceVersionsSection = () => {
const { ref } = useParams()
const { data: project } = useSelectedProjectQuery()
+ const isAwsK8s = useIsAwsK8sCloudProvider()
const { projectAuthAll: authEnabled, projectSettingsDatabaseUpgrades: showDatabaseUpgrades } =
useIsFeatureEnabled([
@@ -197,7 +202,7 @@ export const ServiceVersionsSection = () => {
>
)}
- {showDatabaseUpgrades && data && data.eligible ? (
+ {showDatabaseUpgrades && data && data.eligible && !isAwsK8s ? (
hasReadReplicas ? (
) : (