[ ] I’m using docker compose setup, with modifications (modified .yml files, third party plugins/themes, etc.) - if so, describe your modifications in your post. Before reporting, see if your issue can be reproduced on the unmodified setup.
[ ] I’m not using docker on my primary instance, but my issue can be reproduced on the aforementioned docker setup and/or official demo.
The old docker compose repo is gone: “No repositories found” → https://git.tt-rss.org/fox/ttrss-docker-compose
My automation that pulled from that repo to keep the docker-compose.yml up2date is now broken, as are a bunch of links on the website.
Tiny Tiny RSS version (including git commit id): 6418c518db9ba5c5988441cbfe6f87639050e751
Platform (i.e. Linux distro, Docker, PHP, PostgreSQL, etc) versions: debian 12, Docker version 24.0.6
The Installation page suddenly links to another repo: https://git.tt-rss.org/fox/tt-rss.git, don’t know what else changed, since i setup ttrss years ago.
It is now unclear to me how to migrate my setup to this new repo since im very bad with docker. I tried this already:
I cloned the new repo and copied my .env file. I then did a docker compose up but the instance is completly fresh now. So instead of figuring out docker more i imported a backup from the old instance. So far so good: it worked. BUT when i do a docker compose down and then up again the instance is fresh again! I don’t understand this, i followed the backup and restore instructions from the wiki.
I purged every volume, image and container and tried to do the restore procedure again, but whenever i compose down & up, it’s reset again.
Because it said on the front page " Tiny Tiny RSS uses continuous development model based on git master branch which is considered stable."
i associated stable=production sorry.
The wiki git does not have a docker-compose.yml, i would have to grab it from the InstallationNotes.md. Before it was easier. But i guess this is good enough thanks for your help.
I am having the same problem, if i update the docker-compose.yml, ttrss-docker-db-1 fails to start giving a message:
2023-10-23 20:05:14 2023-10-24 01:05:14.951 UTC [1] FATAL: database files are incompatible with server
2023-10-23 20:05:14 2023-10-24 01:05:14.951 UTC [1] DETAIL: The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 15.4.```
Just to verify it. To upgrade from PG12 to PG15 with the new compose file, we need to dump the old DB, clean the volume, redeploy the stack with the new db (PG15) empty and restore from the backup? Is that correct?
I’ll probably get laughed out the room for not getting my hands dirty but I used this to upgrade from v12 to v15 https://github.com/pgautoupgrade/docker-pgautoupgrade
It was as simple as replacing the database image in docker compose with the following
pgautoupgrade/pgautoupgrade:15-alpine3.8
why would you get laughed at, that’s pretty cool. it’s a shame that official postgres containers have zero support for major version updates. pg_dump/restore is stone age-tier.
e: i’ll add a FAQ entry with major version error and link this repo there
Sadly I saw this after having dumped and restored. For anyone going this path, you will need to update the postgres password with a SCRAM-SHA-256 hash.
@Oliver_Roe Thank you for the hint regarding pgautoupgrade.
Just two hints from the log of the upgrade-process within the container:
Extensions need to be updated separately (i. e. pg_trgm)
optimizer statistics are not transferred
[db] | Your installation contains extensions that should be updated
[db] | with the ALTER EXTENSION command. The file
[db] | update_extensions.sql
[db] | when executed by psql by the database superuser will update
[db] | these extensions.
[db] |
[db] |
[db] | Upgrade Complete
[db] | ----------------
[db] | Optimizer statistics are not transferred by pg_upgrade.
[db] | Once you start the new server, consider running:
[db] | /usr/local/bin/vacuumdb -U tt-rss --all --analyze-in-stages
[db] |
[db] | Running this script will delete the old cluster's data files:
[db] | ./delete_old_cluster.sh
[db] | --------------------------------------
[db] | Running pg_upgrade command is complete
[...]
# docker exec -ti ttrss_db_1 /bin/sh
# cd /var/lib/postgresql/data
/var/lib/postgresql/data # cat update_extensions.sql
\connect -reuse-previous=on "dbname='tt-rss'"
ALTER EXTENSION "pg_trgm" UPDATE;
/var/lib/postgresql/data # psql -U tt-rss -f update_extensions.sql
You are now connected to database "tt-rss" as user "tt-rss".
ALTER EXTENSION
/var/lib/postgresql/data # /usr/local/bin/vacuumdb -U tt-rss --all --analyze-in-stages
vacuumdb: processing database "postgres": Generating minimal optimizer statistics (1 target)
[...]
vacuumdb: processing database "tt-rss": Generating default (full) optimizer statistics
/var/lib/postgresql/data #
PS: The delete script contained rm -rf ‘/var/lib/postgresql/data/old’ a directory which did not exist.