A really interesting idea. Checking what locks a database migrations holds in CI so you can automatically add warnings to pull requests that are likely to cause downtime.
Or a Manic Miner fan - it's the name of one of the levels. Presumably influenced by Pink Floyd, although the person that wrote Manic Miner was only about eleven IIRC :-)
This is super cool, I love how it suggests safer ways to achieve the same goal for many common risky migrations. Definitely going to sit down and study these.
Another appear of an ax in a Pink Floyd song is the “ Run to the bedroom, in the suitcase on the left, you'll find my favorite axe,” from “One Of My Turns”
Made your page much more readable on large screens https://imgur.com/a/KJbsCOr
Remove the aside bar, remove the 25vw padding on the left, increase font size to 2em and remove the margin 0 8% 2%. Increase your line-height to 2.0 which I havent done in my image
It doesn't make the article less interesting but this statement is wrong most of the time
> This scenario is essentially identical to one in which there's a single migration statement that requires an `AccessExclusiveLock` and performs a table rewrite, such as adding a NOT NULL column with a DEFAULT value.
Unless the `DEFAULT` value is `VOLATILE` (this is rarely the case as usually default values are at least `STABLE`) no table rewrite is necessary since Postgres 11.
> Many other useful performance improvements, including the ability to avoid a table rewrite for ALTER TABLE ... ADD COLUMN with a non-null column default
Thanks, I will fix this part. As far as I can tell, it is only the example of what can cause the table rewrite that's wrong, so it would be correct if the example was to make a varchar shorter? Although I guess that's not a table rewrite, only a long validation...
17 comments
[ 4.4 ms ] story [ 55.5 ms ] threadhttps://youtu.be/dcSMv44jgls?t=4m08s
The docs include a handy articulation of fixes.
Another appear of an ax in a Pink Floyd song is the “ Run to the bedroom, in the suitcase on the left, you'll find my favorite axe,” from “One Of My Turns”
> This scenario is essentially identical to one in which there's a single migration statement that requires an `AccessExclusiveLock` and performs a table rewrite, such as adding a NOT NULL column with a DEFAULT value.
Unless the `DEFAULT` value is `VOLATILE` (this is rarely the case as usually default values are at least `STABLE`) no table rewrite is necessary since Postgres 11.
https://www.postgresql.org/docs/devel/sql-altertable.html
> Many other useful performance improvements, including the ability to avoid a table rewrite for ALTER TABLE ... ADD COLUMN with a non-null column default
https://www.postgresql.org/docs/release/11.0/