How to update Nextcloud 34.0.4 to 35.0.2 (docker) with MariaDB 10.11

Hello,

`Nextcloud 34.0.4 running on Rasbperry Pi OS arm 64-bit via docker compose

Nextcloud 35.0.1 requires at least MariaDB 11.8 or 12.3 so updating from MariaDB 10.11 is mandatory.

I have taken time to search for a guide/how-to with no success. So I am detailing here the steps I have taken. In the end, I have had two errors - maybe there are database inconsistencies from my update - I do not know:

One:
nextcloud-db | 2026-09-29 10:48:29 4 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
nextcloud-db | 2026-09-29 10:48:29 4 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).

Two:
nextcloud-app | - missing table 'oc_federated_invites'

I have been able to sort of fix the first one; not the second one as it seems Nexcloud 35 is making us of new tables while some tables from Nextcloud 34 are not being used anymore.

I would appreciate if you could either review the steps taken and/or provide feedback on the safe way to migrate to a newer MariaDB and Nexcloud versions.

Nextcloud v34.0.4 log, everything is ok

sudo docker compose down && sudo docker compose up -d && sudo docker compose logs -f
[+] up 4/4
✔ Network nextcloud_default Created 0.1s
✔ Container nextcloud-db Started 1.6s
✔ Container nextcloud-backup Started 2.6s
✔ Container nextcloud-app Started 3.1s
nextcloud-backup | time=2026-09-29T18:33:19.157+02:00 level=INFO msg="Successfully scheduled backup from environment with expression 0 23 31 12 "
nextcloud-db | 2026-09-29 16:33:18+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.27+maria~ubu2204 started.
nextcloud-db | 2026-09-29 16:33:18+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
nextcloud-db | 2026-09-29 16:33:18+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.27+maria~ubu2204 started.
nextcloud-db | 2026-09-29 16:33:19+00:00 [Note] [Entrypoint]: MariaDB upgrade not required
nextcloud-db | 2026-09-29 16:33:19 0 [Note] Starting MariaDB 10.6.27-MariaDB-ubu2204-log source revision b2050fdb4a8776422baf01a41bf86845994edb97 server_uid f0hSEVhIMu4oiCIafnG1TZOEBiY= as process 1
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Number of pools: 1
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Completed initialization of buffer pool
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: 128 rollback segments are active.
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Creating shared tablespace for temporary tables
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: 10.6.27 started; log sequence number 1793300330; transaction id 6596655
nextcloud-db | 2026-09-29 16:33:19 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
nextcloud-db | 2026-09-29 16:33:19 0 [Note] Plugin 'FEEDBACK' is disabled.
nextcloud-app | => Configuring PHP session handler...
nextcloud-app | ==> Using default PHP session handler
nextcloud-db | 2026-09-29 16:33:21 0 [Note] Server socket created on IP: '0.0.0.0'.
nextcloud-db | 2026-09-29 16:33:21 0 [Note] Server socket created on IP: '::'.
nextcloud-app | Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
nextcloud-app | => Searching for hook scripts (
.sh) to run, located in the folder "/docker-entrypoint-hooks.d/before-starting"
nextcloud-app | ==> Skipped: the "before-starting" folder is empty (or does not exist)
nextcloud-app | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.128.4. Set the 'ServerName' directive globally to suppress this message
nextcloud-app | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.128.4. Set the 'ServerName' directive globally to suppress this message
nextcloud-app | [Tue Sep 29 18:33:21.483535 2026] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.68 (Debian) PHP/8.5.10 configured -- resuming normal operations
nextcloud-app | [Tue Sep 29 18:33:21.483627 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
nextcloud-db | 2026-09-29 16:33:22 0 [Note] mariadbd: ready for connections.
nextcloud-db | Version: '10.6.27-MariaDB-ubu2204-log' socket: '/run/mysqld/mysqld.sock' port: 3306 ``mariadb.org`` binary distribution
nextcloud-db | 2026-09-29 16:33:23 0 [Note] InnoDB: Buffer pool(s) load completed at 260929 16:33:23

sudo docker compose exec -u www-data app php occ status

installed: true

version: 34.0.4.1

versionstring: 34.0.4

edition:

maintenance: false

needsDbUpgrade: false

productname: Nextcloud

extendedSupport: false


sudo docker compose exec db mysql nextcloud -u root -p -e "show fields from mysql.column_stats "
Enter password:
+---------------+-----------------------------------------+------+-----+---------+-------+
| Field         | Type                                    | Null | Key | Default | Extra |
+---------------+-----------------------------------------+------+-----+---------+-------+
| db_name       | varchar(64)                             | NO   | PRI | NULL    |       |
| table_name    | varchar(64)                             | NO   | PRI | NULL    |       |
| column_name   | varchar(64)                             | NO   | PRI | NULL    |       |
| min_value     | varbinary(255)                          | YES  |     | NULL    |       |
| max_value     | varbinary(255)                          | YES  |     | NULL    |       |
| nulls_ratio   | decimal(12,4)                           | YES  |     | NULL    |       |
| avg_length    | decimal(12,4)                           | YES  |     | NULL    |       |
| avg_frequency | decimal(12,4)                           | YES  |     | NULL    |       |
| hist_size     | tinyint(3) unsigned                     | YES  |     | NULL    |       |
| hist_type     | enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') | YES  |     | NULL    |       |
| histogram     | varbinary(255)                          | YES  |     | NULL    |       |
+---------------+-----------------------------------------+------+-----+---------+-------+


sudo docker compose exec db mariadb -uroot -p -e "USE nextcloud; SHOW TABLES;"
Enter password:
+-----------------------------+
| Tables_in_nextcloud |
+-----------------------------+
| oc_accounts |
| oc_accounts_data |
| oc_activity |
| oc_activity_mq |
| oc_addressbookchanges |
| oc_addressbooks |
| oc_appconfig |
| oc_appconfig_ex |
| oc_authorized_groups |
| oc_authtoken |
| oc_bruteforce_attempts |
| oc_calendar_invitations |
| oc_calendar_reminders |
| oc_calendar_resources |
| oc_calendar_resources_md |
| oc_calendar_rooms |
| oc_calendar_rooms_md |
| oc_calendarchanges |
| oc_calendarobjects |
| oc_calendarobjects_props |
| oc_calendars |
| oc_calendars_federated |
| oc_calendarsubscriptions |
| oc_cards |
| oc_cards_properties |
| oc_circles_circle |
| oc_circles_event |
| oc_circles_member |
| oc_circles_membership |
| oc_circles_mount |
| oc_circles_mountpoint |
| oc_circles_remote |
| oc_circles_share_lock |
| oc_circles_token |
| oc_collres_accesscache |
| oc_collres_collections |
| oc_collres_resources |
| oc_comments |
| oc_comments_read_markers |
| oc_dav_absence |
| oc_dav_cal_proxy |
| oc_dav_shares |
| oc_direct_edit |
| oc_directlink |
| oc_e2e_encryption_lock |
| oc_ex_apps |
| oc_ex_apps_daemons |
| oc_ex_apps_routes |
| oc_ex_apps_talk_bots |
| oc_ex_deploy_options |
| oc_ex_occ_commands |
| oc_ex_settings_forms |
| oc_ex_task_processing |
| oc_ex_ui_files_actions |
| oc_ex_ui_scripts |
| oc_ex_ui_states |
| oc_ex_ui_styles |
| oc_ex_ui_top_menu |
| oc_federated_invites |
| oc_federated_reshares |
| oc_file_locks |
| oc_filecache |
| oc_filecache_extended |
| oc_files_lock |
| oc_files_metadata |
| oc_files_metadata_index |
| oc_files_reminders |
| oc_files_trash |
| oc_files_versions |
| oc_flow_checks |
| oc_flow_operations |
| oc_flow_operations_scope |
| oc_group_admin |
| oc_group_user |
| oc_groups |
| oc_job_classes_registry |
| oc_job_runs |
| oc_jobs |
| oc_known_users |
| oc_login_flow_v2 |
| oc_migrations |
| oc_mimetypes |
| oc_mounts |
| oc_notifications |
| oc_notifications_pushhash |
| oc_notifications_settings |
| oc_notifications_webpush |
| oc_oauth2_access_tokens |
| oc_oauth2_clients |
| oc_open_local_editor |
| oc_photos_albums |
| oc_photos_albums_collabs |
| oc_photos_albums_files |
| oc_preferences |
| oc_preferences_ex |
| oc_preview_locations |
| oc_preview_versions |
| oc_previews |
| oc_privacy_admins |
| oc_profile_config |
| oc_properties |
| oc_ratelimit_entries |
| oc_reactions |
| oc_recent_contact |
| oc_schedulingobjects |
| oc_sec_signatory |
| oc_share |
| oc_share_external |
| oc_shares_limits |
| oc_storages |
| oc_storages_credentials |
| oc_systemtag |
| oc_systemtag_group |
| oc_systemtag_object_mapping |
| oc_talk_attachments |
| oc_talk_attendees |
| oc_talk_bans |
| oc_talk_bots_conversation |
| oc_talk_bots_server |
| oc_talk_bridges |
| oc_talk_commands |
| oc_talk_consent |
| oc_talk_conversation_tags |
| oc_talk_internalsignaling |
| oc_talk_invitations |
| oc_talk_phone_numbers |
| oc_talk_poll_votes |
| oc_talk_polls |
| oc_talk_proxy_messages |
| oc_talk_reminders |
| oc_talk_retry_ocm |
| oc_talk_rooms |
| oc_talk_scheduled_msg |
| oc_talk_sessions |
| oc_talk_thread_attendees |
| oc_talk_threads |
| oc_taskprocessing_tasks |
| oc_text2image_tasks |
| oc_text_documents |
| oc_text_sessions |
| oc_text_steps |
| oc_textprocessing_tasks |
| oc_trusted_servers |
| oc_twofactor_backupcodes |
| oc_twofactor_providers |
| oc_twofactor_totp_secrets |
| oc_user_status |
| oc_user_transfer_owner |
| oc_users |
| oc_vcategory |
| oc_vcategory_to_object |
| oc_webauthn |
| oc_webhook_listeners |
| oc_webhook_tokens |
+-----------------------------+

So
| hist_type | enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') | YES | | NULL | |
| histogram | varbinary(255) | YES | | NULL | |
are different and there are many changes in the tables in the nextcloud database

sudo docker compose exec -u www-data app php occ maintenance:mode --on
sudo docker compose exec -u www-data app php occ status

sudo docker compose exec db mariadb-dump 
-uroot -p 
--single-transaction 
--routines 
--triggers 
--events 
--all-databases \

mariadb-before-10.11.sql

sudo docker compose stop db

sudo tar -czf db-before-10.11.tar.gz db/

nano docker-compose.yml to edit version 10.6 to 10.11
sudo docker compose pull db
sudo docker compose up -d db && sudo docker compose logs -f db

As expected, there it is the different values

...
nextcloud-db | 2026-09-29 10:48:10+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
...
nextcloud-db | 2026-09-29 10:48:12 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.
nextcloud-db | 2026-09-29 10:48:12 0 [Note] Server socket created on IP: '::', port: '3306'.
nextcloud-db | 2026-09-29 10:48:12 0 [Note] mariadbd: ready for connections.
nextcloud-db | Version: '10.11.19-MariaDB-ubu2204-log' socket: '/run/mysqld/mysqld.sock' port: 3306 ``mariadb.org`` binary distribution
nextcloud-db | 2026-09-29 10:48:15 0 [Note] InnoDB: Buffer pool(s) load completed at 260929 10:48:15
nextcloud-db | 2026-09-29 10:48:29 4 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
nextcloud-db | 2026-09-29 10:48:29 4 [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).

which can be solved with

sudo docker compose exec db mysql nextcloud -u root -p -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;"
sudo docker compose exec db mysql nextcloud -u root -p -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');"

sudo docker compose ps
sudo docker compose exec db mariadb --version
sudo docker compose exec db mariadb -u root -p -e "SELECT VERSION();"

Now, it’s update time: 10.6.27-MariaDB to 10.11.19-MariaDB

sudo docker compose exec db mariadb-upgrade -u root -p
Enter password:
Major version upgrade detected from 10.6.27-MariaDB to 10.11.19-MariaDB. Check required!
Phase 1/8: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats OK
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.global_priv OK
mysql.gtid_slave_pos OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.index_stats OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.roles_mapping OK
mysql.servers OK
mysql.table_stats OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.transaction_registry OK
Phase 2/8: Installing used storage engines... Skipped
Phase 3/8: Running 'mysql_fix_privilege_tables'
Phase 4/8: Fixing views
mysql.user OK
sys.host_summary OK
sys.host_summary_by_file_io OK
sys.host_summary_by_file_io_type OK
sys.host_summary_by_stages OK
sys.host_summary_by_statement_latency OK
sys.host_summary_by_statement_type OK
sys.innodb_buffer_stats_by_schema OK
sys.innodb_buffer_stats_by_table OK
sys.innodb_lock_waits OK
sys.io_by_thread_by_latency OK
sys.io_global_by_file_by_bytes OK
sys.io_global_by_file_by_latency OK
sys.io_global_by_wait_by_bytes OK
sys.io_global_by_wait_by_latency OK
sys.latest_file_io OK
sys.memory_by_host_by_current_bytes OK
sys.memory_by_thread_by_current_bytes OK
sys.memory_by_user_by_current_bytes OK
sys.memory_global_by_current_bytes OK
sys.memory_global_total OK
sys.metrics OK
sys.processlist OK
sys.ps_check_lost_instrumentation OK
sys.schema_auto_increment_columns OK
sys.schema_index_statistics OK
sys.schema_object_overview OK
sys.schema_redundant_indexes OK
sys.schema_table_lock_waits OK
sys.schema_table_statistics OK
sys.schema_table_statistics_with_buffer OK
sys.schema_tables_with_full_table_scans OK
sys.schema_unused_indexes OK
sys.session OK
sys.session_ssl_status OK
sys.statement_analysis OK
sys.statements_with_errors_or_warnings OK
sys.statements_with_full_table_scans OK
sys.statements_with_runtimes_in_95th_percentile OK
sys.statements_with_sorting OK
sys.statements_with_temp_tables OK
sys.user_summary OK
sys.user_summary_by_file_io OK
sys.user_summary_by_file_io_type OK
sys.user_summary_by_stages OK
sys.user_summary_by_statement_latency OK
sys.user_summary_by_statement_type OK
sys.version OK
sys.wait_classes_global_by_avg_latency OK
sys.wait_classes_global_by_latency OK
sys.waits_by_host_by_latency OK
sys.waits_by_user_by_latency OK
sys.waits_global_by_latency OK
sys.x$host_summary OK
sys.x$host_summary_by_file_io OK
sys.x$host_summary_by_file_io_type OK
sys.x$host_summary_by_stages OK
sys.x$host_summary_by_statement_latency OK
sys.x$host_summary_by_statement_type OK
sys.x$innodb_buffer_stats_by_schema OK
sys.x$innodb_buffer_stats_by_table OK
sys.x$innodb_lock_waits OK
sys.x$io_by_thread_by_latency OK
sys.x$io_global_by_file_by_bytes OK
sys.x$io_global_by_file_by_latency OK
sys.x$io_global_by_wait_by_bytes OK
sys.x$io_global_by_wait_by_latency OK
sys.x$latest_file_io OK
sys.x$memory_by_host_by_current_bytes OK
sys.x$memory_by_thread_by_current_bytes OK
sys.x$memory_by_user_by_current_bytes OK
sys.x$memory_global_by_current_bytes OK
sys.x$memory_global_total OK
sys.x$processlist OK
sys.x$ps_digest_95th_percentile_by_avg_us OK
sys.x$ps_digest_avg_latency_distribution OK
sys.x$ps_schema_table_statistics_io OK
sys.x$schema_flattened_keys OK
sys.x$schema_index_statistics OK
sys.x$schema_table_lock_waits OK
sys.x$schema_table_statistics OK
sys.x$schema_table_statistics_with_buffer OK
sys.x$schema_tables_with_full_table_scans OK
sys.x$session OK
sys.x$statement_analysis OK
sys.x$statements_with_errors_or_warnings OK
sys.x$statements_with_full_table_scans OK
sys.x$statements_with_runtimes_in_95th_percentile OK
sys.x$statements_with_sorting OK
sys.x$statements_with_temp_tables OK
sys.x$user_summary OK
sys.x$user_summary_by_file_io OK
sys.x$user_summary_by_file_io_type OK
sys.x$user_summary_by_stages OK
sys.x$user_summary_by_statement_latency OK
sys.x$user_summary_by_statement_type OK
sys.x$wait_classes_global_by_avg_latency OK
sys.x$wait_classes_global_by_latency OK
sys.x$waits_by_host_by_latency OK
sys.x$waits_by_user_by_latency OK
sys.x$waits_global_by_latency OK
Phase 5/8: Fixing table and database names
Phase 6/8: Checking and upgrading tables
Processing databases
information_schema
nextcloud
nextcloud.oc_accounts OK
nextcloud.oc_accounts_data OK
nextcloud.oc_activity OK
nextcloud.oc_activity_mq OK
nextcloud.oc_addressbookchanges OK
nextcloud.oc_addressbooks OK
nextcloud.oc_appconfig OK
nextcloud.oc_appconfig_ex OK
nextcloud.oc_authorized_groups OK
nextcloud.oc_authtoken OK
nextcloud.oc_bruteforce_attempts OK
nextcloud.oc_calendar_invitations OK
nextcloud.oc_calendar_reminders OK
nextcloud.oc_calendar_resources OK
nextcloud.oc_calendar_resources_md OK
nextcloud.oc_calendar_rooms OK
nextcloud.oc_calendar_rooms_md OK
nextcloud.oc_calendarchanges OK
nextcloud.oc_calendarobjects OK
nextcloud.oc_calendarobjects_props OK
nextcloud.oc_calendars OK
nextcloud.oc_calendars_federated OK
nextcloud.oc_calendarsubscriptions OK
nextcloud.oc_cards OK
nextcloud.oc_cards_properties OK
nextcloud.oc_circles_circle OK
nextcloud.oc_circles_event OK
nextcloud.oc_circles_member OK
nextcloud.oc_circles_membership OK
nextcloud.oc_circles_mount OK
nextcloud.oc_circles_mountpoint OK
nextcloud.oc_circles_remote OK
nextcloud.oc_circles_share_lock OK
nextcloud.oc_circles_token OK
nextcloud.oc_collres_accesscache OK
nextcloud.oc_collres_collections OK
nextcloud.oc_collres_resources OK
nextcloud.oc_comments OK
nextcloud.oc_comments_read_markers OK
nextcloud.oc_dav_absence OK
nextcloud.oc_dav_cal_proxy OK
nextcloud.oc_dav_shares OK
nextcloud.oc_direct_edit OK
nextcloud.oc_directlink OK
nextcloud.oc_e2e_encryption_lock OK
nextcloud.oc_ex_apps OK
nextcloud.oc_ex_apps_daemons OK
nextcloud.oc_ex_apps_routes OK
nextcloud.oc_ex_apps_talk_bots OK
nextcloud.oc_ex_deploy_options OK
nextcloud.oc_ex_occ_commands OK
nextcloud.oc_ex_settings_forms OK
nextcloud.oc_ex_task_processing OK
nextcloud.oc_ex_ui_files_actions OK
nextcloud.oc_ex_ui_scripts OK
nextcloud.oc_ex_ui_states OK
nextcloud.oc_ex_ui_styles OK
nextcloud.oc_ex_ui_top_menu OK
nextcloud.oc_federated_invites OK
nextcloud.oc_federated_reshares OK
nextcloud.oc_file_locks OK
nextcloud.oc_filecache OK
nextcloud.oc_filecache_extended OK
nextcloud.oc_files_lock OK
nextcloud.oc_files_metadata OK
nextcloud.oc_files_metadata_index OK
nextcloud.oc_files_reminders OK
nextcloud.oc_files_trash OK
nextcloud.oc_files_versions OK
nextcloud.oc_flow_checks OK
nextcloud.oc_flow_operations OK
nextcloud.oc_flow_operations_scope OK
nextcloud.oc_group_admin OK
nextcloud.oc_group_user OK
nextcloud.oc_groups OK
nextcloud.oc_job_classes_registry OK
nextcloud.oc_job_runs OK
nextcloud.oc_jobs OK
nextcloud.oc_known_users OK
nextcloud.oc_login_flow_v2 OK
nextcloud.oc_migrations OK
nextcloud.oc_mimetypes OK
nextcloud.oc_mounts OK
nextcloud.oc_notifications OK
nextcloud.oc_notifications_pushhash OK
nextcloud.oc_notifications_settings OK
nextcloud.oc_notifications_webpush OK
nextcloud.oc_oauth2_access_tokens OK
nextcloud.oc_oauth2_clients OK
nextcloud.oc_open_local_editor OK
nextcloud.oc_photos_albums OK
nextcloud.oc_photos_albums_collabs OK
nextcloud.oc_photos_albums_files OK
nextcloud.oc_preferences OK
nextcloud.oc_preferences_ex OK
nextcloud.oc_preview_locations OK
nextcloud.oc_preview_versions OK
nextcloud.oc_previews OK
nextcloud.oc_privacy_admins OK
nextcloud.oc_profile_config OK
nextcloud.oc_properties OK
nextcloud.oc_ratelimit_entries OK
nextcloud.oc_reactions OK
nextcloud.oc_recent_contact OK
nextcloud.oc_schedulingobjects OK
nextcloud.oc_sec_signatory OK
nextcloud.oc_share OK
nextcloud.oc_share_external OK
nextcloud.oc_shares_limits OK
nextcloud.oc_storages OK
nextcloud.oc_storages_credentials OK
nextcloud.oc_systemtag OK
nextcloud.oc_systemtag_group OK
nextcloud.oc_systemtag_object_mapping OK
nextcloud.oc_talk_attachments OK
nextcloud.oc_talk_attendees OK
nextcloud.oc_talk_bans OK
nextcloud.oc_talk_bots_conversation OK
nextcloud.oc_talk_bots_server OK
nextcloud.oc_talk_bridges OK
nextcloud.oc_talk_commands OK
nextcloud.oc_talk_consent OK
nextcloud.oc_talk_conversation_tags OK
nextcloud.oc_talk_internalsignaling OK
nextcloud.oc_talk_invitations OK
nextcloud.oc_talk_phone_numbers OK
nextcloud.oc_talk_poll_votes OK
nextcloud.oc_talk_polls OK
nextcloud.oc_talk_proxy_messages OK
nextcloud.oc_talk_reminders OK
nextcloud.oc_talk_retry_ocm OK
nextcloud.oc_talk_rooms OK
nextcloud.oc_talk_scheduled_msg OK
nextcloud.oc_talk_sessions OK
nextcloud.oc_talk_thread_attendees OK
nextcloud.oc_talk_threads OK
nextcloud.oc_taskprocessing_tasks OK
nextcloud.oc_text2image_tasks OK
nextcloud.oc_text_documents OK
nextcloud.oc_text_sessions OK
nextcloud.oc_text_steps OK
nextcloud.oc_textprocessing_tasks OK
nextcloud.oc_trusted_servers OK
nextcloud.oc_twofactor_backupcodes OK
nextcloud.oc_twofactor_providers OK
nextcloud.oc_twofactor_totp_secrets OK
nextcloud.oc_user_status OK
nextcloud.oc_user_transfer_owner OK
nextcloud.oc_users OK
nextcloud.oc_vcategory OK
nextcloud.oc_vcategory_to_object OK
nextcloud.oc_webauthn OK
nextcloud.oc_webhook_listeners OK
nextcloud.oc_webhook_tokens OK
performance_schema
sys
sys.sys_config OK
Phase 7/8: uninstalling plugins
Phase 8/8: Running 'FLUSH PRIVILEGES'
OK

Now, let’s see:

sudo docker compose down && sudo docker compose up -d db && sudo docker compose logs -f db

...

nextcloud-db  | 2026-09-29 11:27:01+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
nextcloud-db  | 2026-09-29 11:27:01+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
nextcloud-db  | 2026-09-29 11:27:01+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.11.19+maria~ubu2204 started.
nextcloud-db  | 2026-09-29 11:27:01+00:00 [Note] [Entrypoint]: MariaDB upgrade not required
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] Starting MariaDB 10.11.19-MariaDB-ubu2204-log source revision 93e051860a9c7e87ee8cee6ed38b640d491f7170 server_uid h+WxH6sSYHHGjrzsv/ca9jvqOCo= as process 1
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: Number of transaction pools: 1
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: innodb_buffer_pool_size_max=8388608m, innodb_buffer_pool_size=128m
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: Completed initialization of buffer pool
nextcloud-db  | 2026-09-29 11:27:01 0 [Note] InnoDB: File system buffers for log disabled (block size=4096 bytes)
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: End of log at LSN=1793992467
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: 128 rollback segments are active.
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: log sequence number 1793992467; transaction id 6598315
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] Plugin 'FEEDBACK' is disabled.
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] Server socket created on IP: '0.0.0.0', port: '3306'.
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] Server socket created on IP: '::', port: '3306'.
nextcloud-db  | 2026-09-29 11:27:02 0 [Note] mariadbd: ready for connections.
nextcloud-db  | Version: '10.11.19-MariaDB-ubu2204-log'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
nextcloud-db  | 2026-09-29 11:27:06 0 [Note] InnoDB: Buffer pool(s) load completed at 260929 11:27:06

Let’s see the tables

sudo docker compose exec db mariadb -uroot -p -e "USE nextcloud; SHOW TABLES;"
+----------------------------------------+
| Tables_in_nextcloud |
+----------------------------------------+
| oc_accounts |
| oc_accounts_data |
| oc_activity |
| oc_activity_mq |
| oc_addressbookchanges |
| oc_addressbooks |
| oc_appconfig |
| oc_authorized_groups |
| oc_authtoken |
| oc_bruteforce_attempts |
| oc_calendar_invitations |
| oc_calendar_reminders |
| oc_calendar_resources |
| oc_calendar_resources_md |
| oc_calendar_rooms |
| oc_calendar_rooms_md |
| oc_calendarchanges |
| oc_calendarobjects |
| oc_calendarobjects_props |
| oc_calendars |
| oc_calendars_federated |
| oc_calendarsubscriptions |
| oc_cards |
| oc_cards_properties |
| oc_circles_circle |
| oc_circles_event |
| oc_circles_invitations |
| oc_circles_member |
| oc_circles_membership |
| oc_circles_mount |
| oc_circles_mountpoint |
| oc_circles_remote |
| oc_circles_share_lock |
| oc_circles_token |
| oc_collres_accesscache |
| oc_collres_collections |
| oc_collres_resources |
| oc_comments |
| oc_comments_read_markers |
| oc_dav_absence |
| oc_dav_cal_proxy |
| oc_dav_shares |
| oc_direct_edit |
| oc_directlink |
| oc_e2e_encryption_lock |
| oc_ex_apps |
| oc_ex_apps_daemons |
| oc_ex_apps_routes |
| oc_ex_apps_talk_bots |
| oc_ex_deploy_options |
| oc_ex_occ_commands |
| oc_ex_settings_forms |
| oc_ex_task_processing |
| oc_ex_ui_files_actions |
| oc_ex_ui_scripts |
| oc_ex_ui_states |
| oc_ex_ui_styles |
| oc_ex_ui_top_menu |
| oc_federated_reshares |
| oc_file_locks |
| oc_filecache |
| oc_filecache_extended |
| oc_files_lock |
| oc_files_metadata |
| oc_files_metadata_index |
| oc_files_reminders |
| oc_files_trash |
| oc_files_versions |
| oc_flow_checks |
| oc_flow_operations |
| oc_flow_operations_scope |
| oc_group_admin |
| oc_group_user |
| oc_groups |
| oc_job_classes_registry |
| oc_job_runs |
| oc_jobs |
| oc_known_users |
| oc_login_flow_v2 |
| oc_migrations |
| oc_mimetypes |
| oc_mounts |
| oc_notifications |
| oc_notifications_pushhash |
| oc_notifications_settings |
| oc_notifications_webpush |
| oc_oauth2_access_tokens |
| oc_oauth2_clients |
| oc_open_local_editor |
| oc_photos_albums |
| oc_photos_albums_collabs |
| oc_photos_albums_files |
| oc_preferences |
| oc_preview_locations |
| oc_preview_versions |
| oc_previews |
| oc_privacy_admins |
| oc_profile_config |
| oc_properties |
| oc_ratelimit_entries |
| oc_reactions |
| oc_recent_contact |
| oc_schedulingobjects |
| oc_sec_signatory |
| oc_share |
| oc_share_external |
| oc_shares_limits |
| oc_sharing_classmap |
| oc_sharing_share |
| oc_sharing_share_permissions |
| oc_sharing_share_properties |
| oc_sharing_share_recipient_permissions |
| oc_sharing_share_recipients |
| oc_sharing_share_sources |
| oc_sharing_share_user_status |
| oc_storages |
| oc_storages_credentials |
| oc_systemtag |
| oc_systemtag_group |
| oc_systemtag_object_mapping |
| oc_talk_attachments |
| oc_talk_attendees |
| oc_talk_bans |
| oc_talk_bots_conversation |
| oc_talk_bots_server |
| oc_talk_bridges |
| oc_talk_commands |
| oc_talk_consent |
| oc_talk_conversation_tags |
| oc_talk_internalsignaling |
| oc_talk_invitations |
| oc_talk_phone_numbers |
| oc_talk_poll_votes |
| oc_talk_polls |
| oc_talk_proxy_messages |
| oc_talk_reminders |
| oc_talk_retry_ocm |
| oc_talk_rooms |
| oc_talk_scheduled_msg |
| oc_talk_sessions |
| oc_talk_thread_attendees |
| oc_talk_threads |
| oc_taskprocessing_tasks |
| oc_text2image_tasks |
| oc_text_documents |
| oc_text_sessions |
| oc_text_steps |
| oc_textprocessing_tasks |
| oc_trusted_servers |
| oc_twofactor_backupcodes |
| oc_twofactor_providers |
| oc_twofactor_totp_secrets |
| oc_user_status |
| oc_user_transfer_owner |
| oc_users |
| oc_vcategory |
| oc_vcategory_to_object |
| oc_webauthn |
| oc_webhook_listeners |
| oc_webhook_tokens |
+----------------------------------------+

But as expected, there are failures

nextcloud-app | - missing table 'oc_federated_invites'

Edit docker-compose.yml so that version is 35.0.1

Pull the new Nextcloud version and see the logs:



sudo docker compose pull app

sudo docker compose up -d app && sudo docker compose logs -f app
[+] up 2/2
✔ Container nextcloud-db  Running                                                                                                                                                                                                       0.0s
✔ Container nextcloud-app Started                                                                                                                                                                                                       2.0s
nextcloud-app  | => Configuring PHP session handler...
nextcloud-app  | ==> Using default PHP session handler
nextcloud-app  | Initializing nextcloud 35.0.1.1 ...
nextcloud-app  | Upgrading nextcloud from 34.0.4.1 ...
nextcloud-app  | Nextcloud is in maintenance mode, only AppAPI commands are loaded.
nextcloud-app  | Commands provided by other apps are unavailable.
nextcloud-app  | => Searching for hook scripts (.sh) to run, located in the folder "/docker-entrypoint-hooks.d/pre-upgrade"
nextcloud-app  | ==> Skipped: the "pre-upgrade" folder is empty (or does not exist)
nextcloud-app  | Setting log level to debug
nextcloud-app  | Updating database schema
nextcloud-app  | Updated database
nextcloud-app  | Disabled incompatible app: spreed
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating <lookup_server_connector> ...
nextcloud-app  | Updated <lookup_server_connector> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating <password_policy> ...
nextcloud-app  | Updated <password_policy> to 7.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 35.0.0
nextcloud-app  | Updating <cloud_federation_api> ...
nextcloud-app  | Updated <cloud_federation_api> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Fix broken values of calendar objects
nextcloud-app  |
nextcloud-app  |  Starting ...
nextcloud-app  |
nextcloud-app  | Clean up old calendar subscriptions from deleted users that were not cleaned-up
nextcloud-app  |
nextcloud-app  |     0/0 [>---------------------------]   0% Starting ...
nextcloud-app  |
nextcloud-app  | Updated  to 2.0.0-dev.1
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 3.0.0-dev.0
nextcloud-app  | Updating <files_lock> ...
nextcloud-app  | Updated <files_lock> to 35.0.0
nextcloud-app  | Updating <files_sharing> ...
nextcloud-app  | Updated <files_sharing> to 2.0.0-dev.1
nextcloud-app  | Updating <files_trashbin> ...
nextcloud-app  | Updated <files_trashbin> to 2.0.0-dev.0
nextcloud-app  | Updating <files_versions> ...
nextcloud-app  | Updated <files_versions> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating <webhook_listeners> ...
nextcloud-app  | Updated <webhook_listeners> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 3.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating <nextcloud_announcements> ...
nextcloud-app  | Updated <nextcloud_announcements> to 7.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 3.0.0-dev.0
nextcloud-app  | Updating <app_api> ...
nextcloud-app  | Updated <app_api> to 35.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.1
nextcloud-app  | Updating <files_downloadlimit> ...
nextcloud-app  | Updated <files_downloadlimit> to 5.3.0
nextcloud-app  | Updating <files_pdfviewer> ...
nextcloud-app  | Updated <files_pdfviewer> to 8.0.0
nextcloud-app  | Updating <files_reminders> ...
nextcloud-app  | Updated <files_reminders> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 1.1.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 7.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating <provisioning_api> ...
nextcloud-app  | Updated <provisioning_api> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating <related_resources> ...
nextcloud-app  | Updated <related_resources> to 6.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 7.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 7.0.0
nextcloud-app  | Updating <survey_client> ...
nextcloud-app  | Updated <survey_client> to 7.0.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 9.0.0
nextcloud-app  | Updating <twofactor_backupcodes> ...
nextcloud-app  | Updated <twofactor_backupcodes> to 2.0.0-dev.0
nextcloud-app  | Updating <twofactor_totp> ...
nextcloud-app  | Updated <twofactor_totp> to 17.1.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 2.0.0-dev.0
nextcloud-app  | Updating <user_status> ...
nextcloud-app  | Updated <user_status> to 2.0.0-dev.0
nextcloud-app  | Updating  ...
nextcloud-app  | Updated  to 8.0.0
nextcloud-app  | Updating <weather_status> ...
nextcloud-app  | Updated <weather_status> to 2.0.0-dev.0
nextcloud-app  | Update app end_to_end_encryption from App Store
nextcloud-app  | Update app spreed from App Store
nextcloud-app  | Remove old user-room-shares
nextcloud-app  |
nextcloud-app  |     0/0 [->--------------------------]   0% Starting ...
nextcloud-app  |
nextcloud-app  | Starting code integrity check...
nextcloud-app  | Finished code integrity check
nextcloud-app  | Update successful
nextcloud-app  | Maintenance mode is kept active
nextcloud-app  | Resetting log level
nextcloud-app  | The database schema does not match what is expected for the installed version:
nextcloud-app  |   - missing table 'oc_federated_invites'
nextcloud-app  | Run "occ db:schema:check -v" for details.
nextcloud-app  |     0/0 [--->------------------------]   0%Nextcloud is in maintenance mode, only AppAPI commands are loaded.
nextcloud-app  | Commands provided by other apps are unavailable.
nextcloud-app  | => Searching for hook scripts (.sh) to run, located in the folder "/docker-entrypoint-hooks.d/post-upgrade"
nextcloud-app  | ==> Skipped: the "post-upgrade" folder is empty (or does not exist)
nextcloud-app  | Initializing finished
nextcloud-app  | Warning: /var/www/html/config/s3.config.php differs from the latest version of this image at /usr/src/nextcloud/config/s3.config.php
nextcloud-app  | => Searching for hook scripts (*.sh) to run, located in the folder "/docker-entrypoint-hooks.d/before-starting"
nextcloud-app  | ==> Skipped: the "before-starting" folder is empty (or does not exist)
nextcloud-app  | [Tue Sep 29 13:38:56.151031 2026] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.68 (Debian) PHP/8.5.11 configured -- resuming normal operations
nextcloud-app  | [Tue Sep 29 13:38:56.151116 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

A few more additional commands:

sudo docker compose exec -u www-data app php occ db:schema:check -v
Nextcloud is in maintenance mode, only AppAPI commands are loaded.
Commands provided by other apps are unavailable.
missing table 'oc_federated_invites'


sudo docker compose exec -u www-data app php occ maintenance:repair
Nextcloud is in maintenance mode, only AppAPI commands are loaded.
Commands provided by other apps are unavailable.

Repair MySQL collation

All tables already have the correct collation -> nothing to do

Clean tags and favorites

0 tags of deleted users have been removed.

0 tags for delete files have been removed.

0 tag entries for deleted tags have been removed.

0 tags with no entries have been removed.

Repair invalid shares

Move .step file of updater to backup location

Add move avatar background job

Repair step already executed

Add preview cleanup background jobs

Migrate oc_properties table to nextcloud schema

oc_properties table does not exist.

Migrate oauth2_clients table to nextcloud schema

Update the oauth2_access_tokens table schema.

Update the oauth2_clients table schema.

Delete clients (and their related access tokens) with the redirect_uri starting with oc:// or ending with *

Repair language codes

Add log rotate job

Clear frontend caches

Image cache cleared

JS cache cleared

Clear every generated avatar

Add preview background cleanup job

Queue a one-time job to cleanup old backups of the updater

Cleanup invalid photocache files for carddav

Add background job to cleanup login flow v2 tokens

Remove potentially over exposing share links

No need to remove link shares.

Clear access cache of projects

Reset generated avatar flag

Keep legacy encryption enabled

Check encryption key format

Remove old dashboard app config data

Add job to cleanup the bruteforce entries

Queue a one-time job to check for user uploaded certificates

Repair DAV shares

Add background job to set the lookup server share state for users

Add token cleanup job

Clean up abandoned apps

Add possibly missing system config

Add AI tasks cleanup jobs

Queue a job to generate metadata

Cache logo dimension to fix size in emails on Outlook

Theming is not used to provide a logo

Remove legacy ".ocdata" file

Add cleanup-deleted-users background job

Add cleanup login tokens background job

Validate account properties and store phone numbers in a known format for search

Queued background to validate account properties.

Queue a job to move the preview

Migrate config keys

Cleanup completed background jobs

AppAPI Daemons configuration GPU params update

Daemons configuration GPU params updated: 0

Upgrading Circles App

Sync groups with their circles

Conditionally drop the federated_invites table
federated_invites does not exist - Fix component of birthday calendars

4 birthday calendars updated.

Regenerating birthday calendars to use new icons and fix old birthday events without year

Repair step already executed

Fix broken values of calendar objects
0 [============================]

Registering building of calendar search index as background job

Repair step already executed

Register building of social profile search index as background job

Repair step already executed

Disable system address book

Skipping repair step system address book has less than the threshold 5000 of contacts no need to disable

Registering background jobs to update cache for webcal calendars

Added 0 background jobs to update webcal calendars

Registering building of calendar reminder index as background job

Repair step already executed

Register a background job to update rooms and resources

Queue jobs to clean up orphan event and contact data

Remove activity entries of private events

Clean up old calendar subscriptions from deleted users that were not cleaned-up
0 [============================]

0 calendar subscriptions without an user have been cleaned up

Fix the share type of guest shares when migrating from ownCloud

Copy the share password into the dedicated column

Set existing shares as accepted

Update OAuth token expiration times

init metadata

Remove old user-room-shares
0 [============================]

Deleted 0 stray shares

Invalidate access cache for projects conversation provider

Invalidation not required

Cache the user display names

Fix the namespace in database tables

Regenerate signaling keys

Switches from default updater server to the customer one if a valid subscription is available

Repair step already executed

Migrate some config values to lazy loading

Send an admin notification if monthly report is disabled

Force-reset all Text document sessions

Initialize migration of background images from dashboard to theming app

Add background job to check for backup codes

Populating added database structures for workflows


sudo docker compose exec -u www-data app php occ db:add-missing-indices
Nextcloud is in maintenance mode, only AppAPI commands are loaded.
Commands provided by other apps are unavailable.
sudo docker compose exec -u www-data app php occ db:add-missing-columns
Nextcloud is in maintenance mode, only AppAPI commands are loaded.
Commands provided by other apps are unavailable.
Done.
sudo docker compose exec -u www-data app php occ integrity:check-core
Nextcloud is in maintenance mode, only AppAPI commands are loaded.
Commands provided by other apps are unavailable.

Now I restart nextcloud fully and and it works. There’s the landing page, can sign in… but table oc_federated_invites is still missing just as tables such as oc_appconfig_ex oc_appconfig_ex`

So I am left with the doubt, did I take the right precise steps?

Thank you in advance for your time.

I think you’re misreading that.

MariaDB 10.11 is the minimum supported.

I believe you encountered this due to the MariaDB upgrade bits not running at some point. Look up MARIADB_AUTO_UPGRADE for the container image. This is not Nextcloud specific.

This is a Nextcloud v35 matter (related to the cloud_federation_api and contacts app) so it’s not you.

@jtr Thank you for jumping in. And thank you for your clarification. Indeed I misread the bit about MariaDB 10.11 is the minimum supported.

So I edited docker-compose.yml

image: nextcloud:35.0.1

and updated the Nextcloud instance.


sudo docker compose exec db mysql nextcloud -u root -p -e "show fields from mysql.column_stats "
Enter password:
+---------------+-----------------------------------------+------+-----+---------+-------+
| Field         | Type                                    | Null | Key | Default | Extra |
+---------------+-----------------------------------------+------+-----+---------+-------+
| db_name       | varchar(64)                             | NO   | PRI | NULL    |       |
| table_name    | varchar(64)                             | NO   | PRI | NULL    |       |
| column_name   | varchar(64)                             | NO   | PRI | NULL    |       |
| min_value     | varbinary(255)                          | YES  |     | NULL    |       |
| max_value     | varbinary(255)                          | YES  |     | NULL    |       |
| nulls_ratio   | decimal(12,4)                           | YES  |     | NULL    |       |
| avg_length    | decimal(12,4)                           | YES  |     | NULL    |       |
| avg_frequency | decimal(12,4)                           | YES  |     | NULL    |       |
| hist_size     | tinyint(3) unsigned                     | YES  |     | NULL    |       |
| hist_type     | enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') | YES  |     | NULL    |       |
| histogram     | varbinary(255)                          | YES  |     | NULL    |       |
+---------------+-----------------------------------------+------+-----+---------+-------+

So histogram is showing as varbinary(255) and hist_type missing one enum value. I do not know how to look up MARIADB_AUTO_UPGRADE for the container image. Could you please provide a bit of gidance in that respect? mariadb stays in 10.6 so no changes there.

I could go on with

sudo docker compose exec db mysql nextcloud -u root -p -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;"
sudo docker compose exec db mysql nextcloud -u root -p -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');"

But I have not ventured *maybe existing data in those fields would garble?) - the last thing I want is breaking my home Nextcloud instance.

Thank you for your reading time.

edit:

sudo docker compose exec db mysql nextcloud -u root -p -e "
SELECT hist_type, histogram
FROM mysql.column_stats;
"
Enter password:

So it seems the two fields are empty.