---
title: "Microsoft's Postgres-themed coloring book"
publication: "Postgres Weekly"
issue: 524
published_at: "2023-10-04"
canonical_url: "https://postgresweekly.com/issues/524"
---

Plus a new zero-downtime schema migration tools, and being thrilled about Oracle supporting Postgres. |        

#​524 — October 4, 2023 

[Web Version](https://postgresweekly.com/issues/524)  

Together with [![Dragonfly\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1296,h_236/e_make_transparent/co_white,e_outline:17/s0zmgewhr5q9s8jl1gfd.png)](https://www.dragonflydb.io/?utm_source=cooper_press&utm_medium=postgres_oct&utm_campaign=oct_2023)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/picufmm614atovsqr22r.jpg)](https://xata.io/blog/pgroll-schema-migrations-postgres)  

[pgroll: Zero-Downtime, Reversible Schema Migrations](https://xata.io/blog/pgroll-schema-migrations-postgres) — The folks at Xata want database migrations to be easy, risk-free, _and_ reversible, so they’ve built a tool to make them so. _pgroll_ uses a variety of techniques like the ‘expand and contract’ pattern to split migrations into numerous reversible chunks and also performs operations solely under short locks (with timeouts). [GitHub repo](https://github.com/xataio/pgroll). 

Carlos Pérez-Aradros Herce (Xata)   

[Version History and Lifecycle Policies for Postgres Tables](https://tembo.io/blog/table-version-history/) — Drawing inspiration from AWS S3’s version history feature, this post outlines employing the temporal_tables and pg_partman extensions to implement version control and automatic data expiry for Postgres tables too.. 

Steven Miller   [![\](https://copm.s3.amazonaws.com/531a0a92.png)](https://www.dragonflydb.io/?utm_source=cooper_press&utm_medium=postgres_oct&utm_campaign=oct_2023) 

[A Data Store Built For Modern Workloads](https://www.dragonflydb.io/?utm_source=cooper_press&utm_medium=postgres_oct&utm_campaign=oct_2023) — Dragonfly is a drop-in Redis replacement. Applications built on Dragonfly get the speed, reliability, and scalability that modern apps require, allowing you to deliver incredible experiences to your users while reducing costs and complexity. 

Dragonfly sponsor   

[On Oracle Supporting Postgres](https://momjian.us/main/blogs/pgblog/2023.html#September_29_2023) — Last week, we noted that [Oracle (Cloud) is getting into the Postgres game](https://blogs.oracle.com/cloud-infrastructure/post/oci-database-postgres). Bruce thinks this is good news and something for us to all be happy about. Watch this space.. 😅 

Bruce Momjian   

_IN BRIEF:_ 

- 🎨 Microsoft is at PGConf NYC (taking place right now) and PGConf EU (this December in Prague, Czechia) and will be giving out copies [of a Postgres-themed 'activity book'](https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/the-story-behind-the-activity-book-for-postgres/ba-p/3941372) complete with coloring and puzzles – yes, really!
- 🎧 Lukas Fittl (CEO of pganalyze) [▶️ went on the Stack Overflow podcast](https://stackoverflow.blog/2023/09/28/how-to-write-high-performance-sql-for-your-postgres-database/) to talk about writing high performance SQL for Postgres and the role of AI in database optimization.
- Azure user? [Postgres 16 is now available in Azure Cosmos DB](https://devblogs.microsoft.com/cosmosdb/postgres-16-in-azure-cosmos-db-for-postgresql-2/) for PostgreSQL, powered by Citus.
- Over on Hacker News, someone bravely(?) called Postgres _'arcane and clunky'_ and asked [why does HN adore Postgres so much?](https://news.ycombinator.com/item?id=37715722) 🙈
- Postgres's popularity has been rapidly growing for vector storage and indexing use cases (mostly thanks to [pgvector](https://github.com/pgvector/pgvector)) but serverless MySQL platform PlanetScale has upped the ante by [forking MySQL to add vector support](https://techcrunch.com/2023/10/03/planetscale-forks-mysql-to-add-vector-support/).
- But if you're not fully up to speed with vector databases or the use cases for them yet, Vercel has written a guide to them: [Vector Databases Explained.](https://vercel.com/guides/vector-databases)
- The latest PGSQL Phriday blogging challenge is to [write a post about why you use Postgres](https://intrbiz.com/post/postgresql/pgsql-phriday-013-usecases-and-why-postgresql).   

[Find When Your Postgres Cluster Was Initialized](https://kmoppel.github.io/2023-09-28-til-when-was-my-postgres-cluster-initialized/) — _“A nice finding after 12 years with Postgres - seems one can actually retrieve the time when a cluster / instance was once initialized.”_ 

Kaarel Moppel   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jfdkqlmuwskbsng0jevq.jpg)](https://obartunov.livejournal.com/211100.html)  

[A Tale of Internationalization in Postgres](https://obartunov.livejournal.com/211100.html) — In 1996, Oleg encountered difficulties using Postgres for a Russian language database due to its then ASCII-only operation. This led to the start of Postgres’s internationalization story which Oleg goes into more depth about here. 

Oleg Bartunov   

[Enter the Matrix: The Four Types of Postgres Extensions?](https://tembo.io/blog/four-types-of-extensions/) — A possible mental model for thinking about the different types of extensions possible. 

Steven Miller   

[Scaling GraphQL with Postgres: Lessons Learned](https://www.cycle.app/blog/scaling-graphql-with-postgres-lessons-learned-from-our-database-timeout-issues) — An engineer at [Cycle](https://www.cycle.app/) explains how they were running into database timeout problems that impacted their service and how they tracked down the problem. 

Martin Delobbe   

[Use OtterTune's AI to Make Your AWS RDS or Aurora Postgres 2x Faster](https://ottertune.com/?utm_source=postgres_weekly&utm_medium=email&utm_campaign=q4_brief_link) 

OtterTune sponsor   

[Allowing DML Operations in Highly Compressed Data in Postgres](https://www.timescale.com/blog/allowing-dml-operations-in-highly-compressed-time-series-data-in-postgresql/) — With TimescaleDB, specifically. 
Timescale    

Code and Tools  

[Five Great Features of the Postgres Partition Manager](https://www.crunchydata.com/blog/five-great-features-of-postgres-partition-manager) — The Postgres partition project, [pg_partman](https://github.com/pgpartman/pg_partman), just reached [version 5.](https://github.com/pgpartman/pg_partman/releases/tag/v5.0.0) This post takes a look over five of the notable features that make this a useful tool when managing large tables. 

Keith Fiske (Crunchy Data)   

[pg_branch: Experimental Extension for Quickly Branching Databases](https://github.com/NAlexPear/pg_branch) — Provides [Neon-esque](https://neon.tech/blog/database-branching-for-postgres-with-neon) branching features to Postgres by using snapshots on copy-on-write filesystems. Pre-alpha, use at your own risk, and so on. 

Alex Pearson   

- [pg_graphql 1.4](https://supabase.github.io/pg_graphql/) – Supabase's solution for bringing GraphQL support to Postgres. Now with support for Postgres 16.
- [pgenv 1.3.3](https://fluca1978.github.io/2023/09/28/pgenv133.html) – Utility to build, run, & switch between Postgres versions.
- [pgmetrics 1.16](https://pgmetrics.io/) – Collect and present metrics from running Postgres servers. Now supporting Postgres 16 too.
- [Bytebase 2.9](https://github.com/bytebase/bytebase/releases/tag/2.9.0) – Database devops and CI/CD system for teams.
- [Barman 3.9](https://github.com/EnterpriseDB/barman/releases/tag/release%2F3.9.0) – Backup and disaster recovery tool.
- [Martin 0.9](https://github.com/maplibre/martin) – Fast Rust-powered PostGIS map tile server.
- [Slonik 37.0](https://github.com/gajus/slonik) – Type-safe Node.js Postgres client. The creator has also just published a [guide to integrating Slonik into an Express.js app.](https://contra.com/p/bgA66gkW-integrating-slonik-with-express-js)
- [pg_cron 1.6.1](https://github.com/citusdata/pg_cron) – Run periodic jobs in Postgres.
- [Unisub](https://github.com/nrempel/unisub) – Rust pub/sub library backed by Postgres.    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter](https://postgresweekly.com/leave/*|UID|*).
