News for hackers. Stuff that matters.
Re:Stack Overflow: How We Do Deployment by rusanu on Tuesday May 03, 2016 @04:49PM (#11624117)
There is a fundamental difference between code deployment and DB upgrades: DB upgrades must preserve (and upgrade) the existing state. Code deployment only needs to ensure that the new code is in place. It can do so by deploying to a new location and then redirecting the entry points, or it can do so by laying over the new code. Either way, the ways ways in which it can go wrong are few (at least compared to DB upgrades). DB upgrades, on the other hand, must take existing state (which can measure GBs and TBs) and transform it into a new state. If you're really unlucky, this may involve a size-of-data transformation (eg. update every row in a big table). I've seen 'upgrades' that lasted weeks. Having witnessed DB upgrades at MS Azure scale (see [0]), and having to code myself several SQL DB upgrade steps (internal system upgrades, the kind done when you install new DB engine, not user upgrades) I can say with confidence that DB upgrades are hard.

What we all end up with are either DB migration steps (a-la Rails migrations), of which I approve see [1], or schema comparison tools (a-la vsdbcmd.exe) of which I'm very skeptical after being burned several times on large DBs (they are as good as the tool, and some tools are better, still I find explicit migrations much better).

As a side note, My startup DBHistory.com is recording all DB schema changes, like a DB flight-recorder of sorts, and one of my future goals is to add capability to generate compensating actions for any DB schema change and thus be able to revert the DB schema to any previous state (by simply rolling back every change, in reverse order). But I must reckon I'm quite far from having such a thing working, and I'm not even considering migrations that modify data, not schema.

    [0] https://medium.com/@rusanu/why-i-have-high-hopes-for-the-quality-of-sql-server-2016-release-6173bc1fbc82#.wp1zt5pn0
    [1] http://rusanu.com/2009/05/15/version-control-and-your-database/
Re:Stack Overflow: How We Do Deployment by rusanu on Tuesday May 03, 2016 @04:51PM (#11624137)
Perhaps one day I will learn how to write HN clickable URLs...
Re:Stack Overflow: How We Do Deployment by yxlx on Tuesday May 03, 2016 @05:08PM (#11624252)
>Perhaps one day I will learn how to write HN clickable URLs...

Leading space is for preformated text and is mostly useful for code. For everything else, don't add leading space. Do add extra line breaks, though.

Here are your links with extra line breaks and without leading space, thus nicely presented and clickable.

[0] https://medium.com/@rusanu/why-i-have-high-hopes-for-the-qua...

[1] http://rusanu.com/2009/05/15/version-control-and-your-databa...

Re:Stack Overflow: How We Do Deployment by harperlee on Wednesday May 04, 2016 @10:20AM (#11628529)
It would be great if formatting instructions were shown in the /post and /submit pages.
Re:Stack Overflow: How We Do Deployment by macca321 on Tuesday May 03, 2016 @05:29PM (#11624391)
occasionally i wonder if we are making a fundamental mistake when we replace the old code with the new. perhaps data versions should be first class concepts in our domains.