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 ? ( ) : (