Ohboy. Tonight I:

  • installed a cool docker monitoring app called dockge
  • started moving docker compose files from random other folders into one centralized place (/opt/dockers if that matters)
  • got to immich, brought the container down
  • moved the docker-compose.yml into my new folder
  • docker compose up -d
  • saw errors saying it didn’t have a DB name to work with, so it created a new database

panik

  • docker compose down
  • copy old .env file from the old directory into the new folder!
  • hold breath
  • docker compose up -d

Welcome to Immich! Let’s get started…

Awwwwww, crud.

Anything I can do at this point?

No immich DB backup but I do have the images themselves.

EDIT: Thanks to u/atzanteol I figured out that changing the folder name caused this too. I changed the docker folder’s name back to the original name and got my DB back! yay

  • pe1uca@lemmy.pe1uca.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 month ago

    Glad to see you solved the issue, I just want to point out that this might happen again if you forget your db is in a volume controlled by docker, better to put it in a folder you know.

    Last month immich released an update to the compose file for this, you need to manually change some part.
    Here’s the post in this community https://lemmy.ml/post/14671585

    Also I’ll include you this link in the same post, I moved the data from the docker volume to my specific one without issue.
    https://lemmy.pe1uca.dev/comment/2546192

    Or maybe another option is to make backups of the db. I saw this project some time ago, haven’t implemented it on my services, but it looks interesting.
    https://github.com/prodrigestivill/docker-postgres-backup-local

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 month ago

    Docker compose has a default “feature” of prefixing the names of things it creates with the name of the directory the yml is in. It could be that the name of your volume changed as a result of you moving the yml to a new folder. The old one should still be there.

    docker volume ls

    • perishthethought@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 month ago

      Hmmm…

      docker volume ls 
      DRIVER    VOLUME NAME
      local     1da54fed5d479f5a551aaf853999fcc3db659193df2643a2bf20470f4da06bee
      local     (a bunch more like the above)
      ...
      local     immich-app_model-cache
      local     immich-app_pgdata
      local     immich-app_tsdata
      local     immich_model-cache
      local     immich_pgdata
      

      I’m not sure how to tell what the many volumes with names like guids could be from. (I have like 12 docker apps running here)

      My docker compose yml file also has:

      database:
          container_name: immich_postgres
          image: tensorchord/pgvecto-rs:pg14-v0.2.0
          env_file:
            - .env
          environment:
            POSTGRES_PASSWORD: ${DB_PASSWORD}
            POSTGRES_USER: ${DB_USERNAME}
            POSTGRES_DB: ${DB_DATABASE_NAME}
          volumes:
            - pgdata:/var/lib/postgresql/data
      

      I think my problem is that I didn’t have the proper .env file the first time I started it up after moving the yml file, and that’s why immich thought it neded to create a new database from scratch. Does that make sense? I think it’s realy overwritten those

      • Lem453@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 month ago

        Is it not in the immich_pgdata or immich-app_pgdata folder?

        The volumes themselves should be stored at /var/lib/docker/volumes

        For future reference, doing operations like this without backing up first is insane.

        Get borgmatic installed to take automatic backups and send them to a backup like another server or borgbase.