"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.

    • marcos@lemmy.world
      link
      fedilink
      arrow-up
      56
      ·
      1 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
            arrow-up
            4
            ·
            1 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
          arrow-up
          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
        arrow-up
        9
        ·
        1 year ago

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

    • kucing@lemmy.ml
      link
      fedilink
      arrow-up
      12
      ·
      1 year ago

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