<story><title>Move Fast and Migrate Things: How We Automated Migrations in Postgres</title><url>https://benchling.engineering/move-fast-and-migrate-things-how-we-automated-migrations-in-postgres-d60aba0fc3d4?</url></story><parent_chain></parent_chain><comment><author>Daishiman</author><text>I am convinced that data migration is definitely one of the hardest problems in data management and systems engineering.&lt;p&gt;There are basically no solutions today that satisfy fundamental requirements such as minimizing downtime and guaranteeing correctness.&lt;p&gt;It is _such_ a huge problem that most inexperienced developers see kicking the problem down the line with NoSQL document storage as a viable alternative (it isn&amp;#x27;t; you&amp;#x27;ll be either dealing with migrating all data forever and special-casing every old version of your documents, or writing even more convoluted migration logic).&lt;p&gt;It&amp;#x27;s also clear that even the most modern ORMs and query builders have not been built in mind to consider the issues that arise in migrating data.&lt;p&gt;It would be a refreshing thing to see more research devoted to this problem. Unfortunately, migrations end up being so different from each other with such heterogenous requirements that we&amp;#x27;ll probably be working on this for a really long time.</text></comment>
<story><title>Move Fast and Migrate Things: How We Automated Migrations in Postgres</title><url>https://benchling.engineering/move-fast-and-migrate-things-how-we-automated-migrations-in-postgres-d60aba0fc3d4?</url></story><parent_chain></parent_chain><comment><author>existencebox</author><text>This is an amazing writeup.  I&amp;#x27;m currently solving the &amp;quot;migrations&amp;quot; problem for a side project of my own, and have basically resolved myself in the short term to be OK with short downtime for the sake of making migrations somewhat trivial.&lt;p&gt;And honestly?  I hate this answer.  As a solo dev it&amp;#x27;s pragmatic, but the solutions described in this article are _SO NICE_ that I&amp;#x27;d love to leverage them.&lt;p&gt;If there&amp;#x27;s any way that those deprecate_column and rename functionalities could make their way into OSS&amp;#x2F;upstream support, I&amp;#x27;d have a field day.  (Those who know more about PG than I do and perhaps may be able to suggest another workaround, feel free, I&amp;#x27;m very much learning this space as I go)&lt;p&gt;If nothing else, thanks to the benchling team for taking the time to write such a clear yet technical expose.  This really hit the sweet spot of &amp;quot;explanations without uneccessary verbosity, technical without being impenetrable, and giving sufficient explanations of motivations and tradeoffs&amp;#x2F;pitfalls&amp;quot; and will give me a north star for where I aim my own DB work.</text></comment>