chore(nextcloud): migrate MariaDB 10.11 -> 11.8 LTS #75
No reviewers
Labels
No labels
blocked
borg-backup
ceph
forgejo
in-progress
infra
netdata
nextcloud
p:high
p:low
p:medium
searxng
service-onboard
swarm-nodes
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
copper/ccnet-prod-devops!75
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-nextcloud-mariadb-11.8"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
In-place major-version migration of Nextcloud's MariaDB, task #7 of the infra update audit. Unlike the Forgejo Postgres 16→18 migration, this is not a dump/restore — MariaDB's official image supports in-place upgrades (
mariadb-upgradeagainst the existing datadir), confirmed via MariaDB's own upgrade guide (direct 10.11→11.8 hop is explicitly supported, no forced 11.4 stopover).Changes to
ccnet-nextcloud-swarm/nextcloud-swarm-stack.yml:dbimagemariadb:10.11→mariadb:11.8--require_secure_transport=OFFadded todb's command line — cheap insurance in case MariaDB 11.8's zero-configuration TLS work ever flips the upstream default (app↔db traffic is plaintext over the internal overlay network; initial research suggesting this default already changed at 11.8 turned out to trace back to AWS RDS's own parameter group, not upstream — kept the flag anyway)MARIADB_AUTO_UPGRADE: "1"added — triggersmariadb-upgradeautomatically on first start against the existing datadirExecution notes
nextcloud/cron/pushto 0 (not justocc maintenance:mode) before the DB touch —mariadb-upgrademust not race live app connectionsmariadb-dump, 360MB) and physical (cp -adatadir, 2.5G) backup before the upgrade; user pulled a copy of the physical backup off-cluster before proceedingmariadb-upgraderan all 8 phases cleanly, no errorsoc_filecacherow count (979,127, exact match pre/post) and a cleanocc files:scan— stronger than a trivial table-count check since an in-place upgrade doesn't touch user datadb.10.11-bak) landed on the default Ceph pool rather thanswarm-nvme—cp -adoesn't carryceph.dir.layout.poolxattrs, same lesson as the Forgejo Postgres migration. Cosmetic for a rollback-only copy.🤖 Generated with Claude Code
https://claude.ai/code/session_01TAp6m6GGf1PKfff1HKziBB