"UPDATE table_name SET w = $1, x = $2, z = $4 WHERE y = $3 RETURNING *",

does not do the same as

"UPDATE table_name SET w = $1, x = $2, y = $3, z = $4 RETURNING *",

It’s 2 am and my mind blanked out the WHERE, and just wanted the numbers neatly in order of 1234.

idiot.

FML.

  • AlphaOmega
    link
    fedilink
    80
    edit-2
    1 year ago

    This is a hard lesson to learn. From now on, my guess is you will have dozens of backups.

    • @kucing@lemmy.ml
      link
      fedilink
      91 year ago

      I’ve read something like “there are two kinds of people: those who backup and those who are about to”

    • @marcos@lemmy.world
      link
      fedilink
      501 year ago

      And a development environment. And not touch production without running the exact code at least once and being well slept.

          • @snail_hatan@lemmy.ml
            link
            fedilink
            41 year ago

            Totally right! You must set yourself up so a fool can run in prod and produce the expected result. Which is the purpose of a test env.

        • @snail_hatan@lemmy.ml
          link
          fedilink
          1
          edit-2
          1 year ago

          Replied hastily, but the way to run db statements in prod while dealing with sleep deprivation and drinking too much is to run it a bunch in several test env scenarios so you’re just copy pasting to prod and it CAN confidently be done. Also enable transactions and determine several, valid smoke tests.

          Edit: a -> several

      • @sim642@lemm.ee
        link
        fedilink
        71 year ago

        Transactions aren’t backups. You can just as easily commit before fully realizing it. Backups, backups, backups.