<story><title>Zero downtime Postgres upgrades</title><url>https://knock.app/blog/zero-downtime-postgres-upgrades</url></story><parent_chain></parent_chain><comment><author>aeyes</author><text>There is a better way than fully copying table content one by one which is very I&amp;#x2F;O heavy and will not work if you have very large tables.&lt;p&gt;You can create a replication slot, take a snapshot, restore the snapshot to a new instance, advance the LSN and replicate from there - boom, you have a logical replica with all the data. Then you upgrade your logical replica.&lt;p&gt;This article from Instacart shows how to do it: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;archive.ph&amp;#x2F;K5ZuJ&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;archive.ph&amp;#x2F;K5ZuJ&lt;/a&gt;&lt;p&gt;If I remember correctly the article has some small errors but I haven&amp;#x27;t done this in a while and I don&amp;#x27;t exactly remember what was wrong. But in general the process works, I have done it like this several times upgrading TB-sized instances.</text></comment>
<story><title>Zero downtime Postgres upgrades</title><url>https://knock.app/blog/zero-downtime-postgres-upgrades</url></story><parent_chain></parent_chain><comment><author>natbennett</author><text>The approach here is interesting and well-documented! However, this line gives me pause—&lt;p&gt;&amp;gt; Modern customers expect 100% availability.&lt;p&gt;This is not my preference as a customer, nor has it been my experience as a vendor. For many workloads consistency is &lt;i&gt;much&lt;/i&gt; more important than availability. I’m often relieved when I see a vendor announce a downtime window because it suggests they’re being sensible with my data.</text></comment>