I’m currently struggling with upgrading some Postgres DBs on my home-k3s and I’m seriously considering throwing it all away since it’s such a hassle.

So, how do you handle DBs? K8s? Just a regular daemon?

  • bigredgiraffe@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 year ago

    Are we talking database schema migrations or migrating a database between Postgres instances?

    If it’s the former, the pattern is usually to run them in init containers or Jobs but I have been wanting to try out SchemaHero for a while which is a tool to orchestrate it and looks pretty neat.

    ETA: Thought I was replying to your below comment but Memmy deleted it the first time for some reason, my bad.

    • AggressivelyPassive@feddit.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      It’s about PostgreSQL upgrade.

      The “pattern” there is to either dump and reinsert the entire DB or upgrade by having two installations (old and new version), which doesn’t exactly work well in k8s. It’s possible, but seems hacky

      • cdombroski@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I’ve always used this docker image to do pg upgrades. It runs pg_upgrade to recreate the system tables and copy the user tables (which normally don’t have any storage changes). It does require that the database isn’t running during the upgrade so you’re going to have a bit of downtime. Make sure you redo any changes to any configuration files, especially pg_hba.conf