PostgreSQL
Co to je: Open-source relační databáze. Ve smarthome slouží k dlouhodobému ukládání dat, například z Node-RED, a běží typicky jako Docker kontejner z oficiálního image postgres. dok. PostgreSQL
Docker: změna úložiště od verze 18
Podle dok. PostgreSQL:
| PostgreSQL 17 a nižší | PostgreSQL 18 a vyšší | |
|---|---|---|
PGDATA |
/var/lib/postgresql/data |
/var/lib/postgresql/18/docker (podle major verze) |
| Kam připojit volume | /var/lib/postgresql/data |
/var/lib/postgresql |
| Proč | – | rychlejší pg_upgrade --link mezi major verzemi |
- Pozor u 17: volume připojené na
/var/lib/postgresqlmísto…/datadata neuloží. Docker vytvoří anonymní volume a po znovuvytvoření kontejneru data zmizí. dok. PostgreSQL - Přechod na nové uspořádání u starší verze: nastavit
PGDATA=/var/lib/postgresql/17/docker, připojit/var/lib/postgresqla nejdřív přesunout existující data do podadresáře17/docker. dok. PostgreSQL - Syntéza: aplikace pro Umbrel nebo vlastní
docker-compose.ymlnapsané pro verzi 17 (mount…/data) proto nejdou jen přepnout na image 18. Je potřeba upravit mount a přesunout data. Proto dává smysl zůstat na 17, dokud to autor aplikace nevyřeší.
Zálohy
Podle dok. PostgreSQL:
pg_dump(SQL dump) je pro domácnost nejpraktičtější. Dělá konzistentní snapshot za běhu databáze, neblokuje provoz a jeho výstup jde načíst i do novější verze PostgreSQL.- Kopie souborů datového adresáře (
tar) je použitelná jen při vypnutém serveru. Za běhu nestačí ani zakázat připojení. - Souborové zálohy a continuous archiving jsou vázané na konkrétní verzi serveru, dump ne.
- Syntéza: pravidelný
pg_dump(např. přesdocker execdo souboru na zálohovaném disku) je nezávislý na verzi i na tom, jak aplikace ukládá data. Hodí se i jako pojistka před upgradem. Postup se skriptem, cronem a zkušební obnovou: Záloha PostgreSQL přes pg_dump.
Upgrade verzí
Podle dok. PostgreSQL:
- Minor verze (17.x → 17.y) nemění formát dat a jsou kompatibilní, stačí vyměnit image.
- Major verze (17 → 18) můžou formát dat změnit. Potřeba je dump a restore (pomalejší) nebo
pg_upgrade(rychlejší). V Dockeru navíc platí změnaPGDATApopsaná výše.
Souvislosti
Zdroje
- PostgreSQL: oficiální Docker image + dokumentace 17 (zálohy, upgrade): oficiální Docker image
postgres(PGDATA) a dokumentace PostgreSQL 17 (zálohy, upgrade). - umbrelOS / Umbrel Home (README, app store, produktová stránka): komunitní obchody Umbrelu.
Intellihome