programmatūra · 5 min · 22.07.2026

Supabase pāriet uz Postgres 17 pēc noklusējuma — timescaledb un plv8 vairs nav klāt

Supabase self-hosted docker-compose noklusējuma datubāzes attēls jūnija vidū pārgāja no Postgres 15 uz Postgres 17. Kas palaiž jauno compose failu virsū vecajam PG 15 datu sējumam, tam datubāze vienkārši nesāksies: Postgres 17 nespēj tieši nolasīt Postgres 15 datu direktoriju.

Tā ir lauzošā izmaiņa, ko Supabase pieteica 18. maija changelog ierakstā. Postgres 17 kā izvēles variants pašmitinātām instalācijām bija pieejams jau no 8. aprīļa. No 17. jūnija tas kļuva par noklusējumu docker-compose.yml failā, tāpēc kas savu attēla versiju nefiksē, tas nākamajā vilkšanā dabū tieši PG 17.

Runa ir par pašmitināto Supabase, ko izstrādātāji palaiž paši uz sava servera ar docker-compose failu. Mākoņa versijā supabase.com versiju maiņu pārvalda pati platforma. Uz servera turēto kaudzi atjaunina cilvēks pats, kad velk jaunos konteineru attēlus, tāpēc noklusējuma maiņu šeit pamana tikai nākamajā atjaunināšanas reizē.

Vecais datu sējums neuzsāksies

Iemesls ir tehniski konkrēts. Postgres glabā datus binārā formātā, kas atšķiras starp lielajām versijām. Palaižot PG 17 konteineru virsū mapei, ko rakstīja PG 15, process pārtrauc darbu ar kļūdu par nesaderīgu datu direktoriju. Dati nepazūd, bet konteiners neuzsāksies, kamēr tie nav pārmigrēti jaunajā formātā.

Supabase migrācijas ceļš prasa uz laiku palaist abus konteinerus vienlaikus. Vecos datus process saglabā mapē ./volumes/db/data.bak.pg15, no kuras var atgriezties atpakaļ, ja migrācija neizdodas. Visu gaitu soli pa solim apraksta oficiālā pamācība.

Kas migrāciju vēl negrib veikt, tas var palikt uz Postgres 15, docker-compose failā fiksējot attēla versiju: image: supabase/postgres:15.x. Tad nākamais atjauninājums neaizvilks datubāzi uz PG 17 pret gribu.

Četras paplašinājumu bibliotēkas pazūd

Lielākais klupšanas akmens migrācijā ir paplašinājumi. Supabase Postgres 17 attēlā vairs nav iekļautas četras bibliotēkas: timescaledb, plv8, plcoffee un plls. Ja datubāze kādu no tām lieto, tā uz PG 17 attēlu nepāries, kamēr paplašinājums nav izmests.

timescaledb ir laikrindu datu paplašinājums sensoru mērījumu, finanšu ticka datu un metriku glabāšanai. plv8 ļauj rakstīt datubāzes funkcijas JavaScript valodā, plcoffee un plls ir tā paša dzinēja CoffeeScript un LiveScript varianti. Projektiem, kas balstās uz timescaledb, tas nozīmē izvēli: vai nu atteikties no paplašinājuma pirms migrācijas, vai palikt uz Postgres 15 attēla.

timescaledb lietotājiem tas ir jūtamākais zaudējums. Kas grib palikt Supabase PG 17 attēlā, tam laikrindu loģika jāpārceļ uz parasto Postgres: sadalītās tabulas ar deklaratīvo partitioning un pg_cron regulārai apkopei. Kam laikrindu datu apjoms ir liels, tas var palikt uz PG 15 vai turēt timescaledb atsevišķā datubāzē ārpus Supabase attēla.

Ja datubāze izmanto timescaledb, plv8, plcoffee vai plls, jūs nevarat pāriet uz Supabase Postgres 17 attēlu, jo šie paplašinājumi tajā vairs nav iekļauti.

Postgres 14 atbalsts beidzās 1. jūlijā

Paralēli pašmitināto attēlu maiņai Supabase 1. jūlijā pilnībā izbeidza Postgres 14 atbalstu. Projekti, kas tajā datumā vēl darbojās uz PG 14, tika automātiski pacelti uz jaunāko pieejamo Postgres versiju. Par to Supabase brīdināja atsevišķā paziņojumā. Šī izmaiņa skar mākoņa projektus, kamēr docker-compose noklusējuma maiņa attiecas uz pašmitinātām instalācijām.

Kāpēc lēkt pāri veselai versijai

Supabase izlaida gan Postgres 16, gan 17 attēlus, bet noklusējumu pārcēla tieši uz 17. Pēc Supabase datiem pāreja no PG 14 uz PG 17 nes vairāk nekā 700 atsevišķus labojumus un uzlabojumus, kas sakrājušies aptuveni divu līdz trīs gadu laikā. Tāpēc Supabase noklusējumā liek 17, kas pašmitinātājam ietaupa vēlāku otru migrāciju uz 16.

Ko darīt pašmitinātājam

Kas savu Supabase kaudzi tur uz sava servera, tam pirms nākamā atjauninājuma der pārbaudīt divas lietas. Pirmā: kāda Postgres versija darbojas tagad un vai datu sējums ir PG 15. Otrā: vai datubāzē ir kāds no izmestajiem paplašinājumiem. Ja tur ir timescaledb, jāizlemj, vai to aizstāt vai fiksēt attēlu uz PG 15.

Kas gatavs migrēt, tam Supabase iesaka vispirms izveidot pilnu dublējumu, tad palaist pamācībā aprakstīto utilītu, kas datus pārceļ no PG 15 formāta uz PG 17. Rezerves mape data.bak.pg15 paliek diskā, tāpēc atgriešanās uz veco versiju ir iespējama, ja kaut kas noiet greizi.

Pati utilīta paceļ PG 15 konteineru blakus jaunajam PG 17 konteineram, izgāž datus no vecā un ielādē tos jaunajā. Ja process apstājas pusceļā, sākotnējie dati paliek neskarti mapē data.bak.pg15 un veco compose failu var palaist atpakaļ. Supabase iesaka to darīt ārpus aktīvās slodzes, jo abu konteineru vienlaicīga darbība prasa vairāk diska un atmiņas.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie