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