Postgres 17 Upgrade — find old versions and upgrade lines

Finds every Azure PostgreSQL Flexible Server in your Terraform still pinned to 11, 12, 13 or 14, shows its Extended Support bill per month and the exact version = "17" line. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

Open VSX (Cursor, VSCodium)

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get one email when this rule changes
We watch the regulation and vendor sources behind PostgreSQL 17 Upgrade Map: Azure Extended Support every day. When a rule changes, you get a single email with what changed and the updated check. No newsletter.

Get the full version $29

The whole workspace in one dated migration report: every server across all .tf files mapped to PostgreSQL 17, with monthly Extended Support cost and billing start date, for the team and the auditor.

One payment, one licence key for this tool. The key is shown right after payment.

Staying on PostgreSQL 11, 12 or 13 costs 0.07 USD per vCore-hour of Extended Support: 204.40 USD a month for one 4-vCore server at the East US list price.

Buy the full version — $29
Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →

ENDEJAESPT

Find a tool

· ReadyStack

Worked example

Real numbers from this tool, line by line.

Migrate from Azure PostgreSQL 11-13 Extended Support to PostgreSQL 17: find the Terraform lines that keep paying

PostgreSQL on Azure: 6 findings in one 50-line Terraform file, and 715.40 USD a month already billed, for a platform team in the United States running Azure Database for PostgreSQL Flexible Server through the azurerm provider.

Line in main.tfServerWhat it costsFix
default = "12"reporting, MO_Standard_E8ds_v4 (8 vCores)408.80 USD a monthdefault = "17"
version = "11"orders, GP_Standard_D4s_v3 (4 vCores)204.40 USD a monthversion = "17"
storage_type = "PremiumV2_LRS"orders, on 11not supportedversion = "17" in the same change
version = "13"sessions, B_Standard_B2s (2 vCores)102.20 USD a monthversion = "17"
version = "14"billing, GP_Standard_D2ds_v5 (2 vCores)102.20 USD a month from 2027-02-01version = "17"
ignore_changes = [version, zone]billingthe upgrade never appliesignore_changes = [zone]

On 2026-10-12 the three billed servers had run for 41 days at those rates: 551.04, 275.52 and 137.76 USD, or 964.32 USD in total.

The dates, from Microsoft's own page

Microsoft's Extended Support page for Azure Database for PostgreSQL gives the same Standard Support end date, 2026-07-31, for versions 11, 12 and 13. Servers were enrolled automatically on 2026-08-01, and after a one-month grace period billing started on 2026-09-01. The FAQ on that page answers "Can I opt out?" with no: the charge stops only when the server runs a supported version. PostgreSQL 14 is next. Standard Support ends 2027-01-31 and Extended Support starts 2027-02-01. Extended Support ends on 2027-03-31 for 11, 2027-11-13 for 12, 2028-11-12 for 13 and 2029-11-11 for 14.

The price comes from Azure's public retail price API: the meter "Extended Support vCore" costs 0.07 USD per hour in East US. At 730 hours a month, each vCore costs 51.10 USD a month.

Why the portal is not enough

The portal shows that a server is enrolled. It does not show the reason your next terraform apply will keep it there. In our sample, the reporting server's version came from var.reporting_pg_version, whose default sat 25 lines above the resource. The billing server had version inside lifecycle { ignore_changes = [...] }, so editing the version to "17" would change nothing in Azure. The orders server asked for PremiumV2_LRS storage, which the azurerm documentation says does not support PostgreSQL 11, 12 or 13.

How the check works

The extension reads each azurerm_postgresql_flexible_server block. It resolves var. versions to the default in the same file, reads the vCores from sku_name (D4s = 4, E8ds = 8, B2s = 2), and multiplies by 0.07 and by 730. It applies 7 rules and takes 2 inputs: the file text and today's date. The date sets the "billed for N days so far" or "billing starts in N days" line. For the 14 server on 2026-10-12, that line read 112 days.

The fix is one line, then a test

azurerm accepts versions 11 to 18 for this resource, and Azure's supported-versions page lists 17.11 as the current minor release. Change the line to version = "17". The in-place major upgrade cannot be undone, so run it on a restored copy first. Then update extensions such as pgvector with ALTER EXTENSION ... UPDATE, as Microsoft's FAQ recommends.

The free check covers any open .tf file and shows every finding. The full version writes one dated report for the whole workspace, for the migration ticket.

15 seconds — what it actually does

Questions people ask

What does PostgreSQL 17 Upgrade Map: Azure Extended Support do?

It reads a Terraform .tf file and flags every azurerm_postgresql_flexible_server pinned to PostgreSQL 11, 12, 13 or 14. It has 7 rules (pg11, pg12, pg13, pg14, PremiumV2_LRS on 11-13, version in ignore_changes, unresolved version) and takes 2 inputs: the file text and today's date. Each finding gives the Extended Support billing date, the monthly cost from sku_name vCores and the version = "17" fix.

Who is this PostgreSQL 17 upgrade check for?

Platform, DevOps and FinOps engineers who run Azure Database for PostgreSQL Flexible Server through Terraform and the azurerm provider. It is for teams whose servers are still on 11, 12 or 13, which Azure has billed for Extended Support since 2026-09-01, or on 14, where billing starts 2027-02-01, and who need to know which .tf line to change.

Why not just use the Azure portal or a chatbot?

Microsoft says the Azure portal shows which servers are enrolled in Extended Support, but it does not show the Terraform line that pins each one, the variable default behind it, or the lifecycle ignore_changes entry that would quietly drop your upgrade. A chatbot does not know your sku_name vCores, so it cannot work out your monthly cost at 0.07 USD per vCore-hour.

What is free and what does the full version add?

Free and complete: check any open .tf file and get every finding from all 7 rules, with the cost per month, the billing date and the exact fix line, using 2 inputs (file text, today's date). The full version, 29 USD once, scans the whole workspace and writes one dated Markdown migration report that maps every server to PostgreSQL 17, for the ticket and the auditor.

What does staying on PostgreSQL 11, 12 or 13 cost on Azure?

Azure's retail price list shows Extended Support at 0.07 USD per vCore-hour in East US. At 730 hours a month, a 4-vCore GP_Standard_D4s_v3 server costs 204.40 USD a month and an 8-vCore MO_Standard_E8ds_v4 costs 408.80 USD. In our sample file of 4 servers, that came to 715.40 USD a month already billed.

What is the next PostgreSQL date on Azure?

PostgreSQL 14 loses Azure Standard Support on 2027-01-31, and Extended Support billing starts on 2027-02-01. Extended Support for PostgreSQL 11 ends on 2027-03-31, for 12 on 2027-11-13 and for 13 on 2028-11-12, according to Microsoft's Extended Support page for Azure Database for PostgreSQL.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.