bb77
February 27, 2025, 12:23pm
22
This is not a bug, and the warning was added intentionally. But yes, it would certainly be nice if Nextcloud could somehow take care of this automatically. On the other hand, there may be good reasons why it doesn’t, I can’t really judge as I’m not a developer.
Yes, in general I would not recommend auto-updating Nextcloud, but not because of this specific “problem” which, as I said, is not a bug.
However, chances are that you will run into actual bugs and issues when upgrading to a new major release, or that certain apps you rely on are not yet compatible.
1 Like
bb77
February 27, 2025, 12:35pm
23
Nice!
…although I didn’t run into any issues with my version of the script, and I’ve used it on multiple instances in the meantime
I’m struggling with this, and I’m not a mysql expert. I’m using mariadb in docker. running the script I get this error:
root@8b0ed8cee3db:/# ./row_format.sh
Enter Database Name: nextcloud
Enter Username: <name>
Enter Password:
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
--------------
mysql from 11.4.5-MariaDB, client 15.2 for Linux (x86_64) using readline 5.1
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Usage: mysql [OPTIONS] [database]
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
The following groups are read: mysql mariadb-client client client-server client-mariadb
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
The following specify which files/extra groups are read (specified before remaining options):
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=# Additionally read default groups with # appended as a suffix.
-?, --help Display this help and exit.
-I, --help Synonym for -?
--abort-source-on-error
Abort 'source filename' operations in case of errors
--auto-rehash Enable automatic rehashing. One doesn't need to use
'rehash' to get table and field completion, but startup
and reconnecting may take a longer time.
(Defaults to on
--------------
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'mysql from 11.4.5-MariaDB, client 15.2 for Linux (x86_64) using readline 5.1
...' at line 1
Anyone else have this issue?
I ended up using @wivaku ’s method and that has worked perfectly for me.
tiboite
February 28, 2025, 12:13am
27
I don’t know what to do with this script? Can you give me the method to implement? I’m a beginner
I just have a little question to this topic.
Does it only concern maria_db installations or could it happen on systems using postgresql as well?
I am still on NC 30 but i already keep an eye on the migration feedback coming from this community NC 30 → NC 31.
Thanks in advance
lxto
February 28, 2025, 9:06am
29
@tiboite
log into nextcloud. In root directory / do as follows.
create scriptfile: touch row_format.sh
edit scriptfile: nano row_format.sh
copy and paste script:
#!/bin/bash
# Prompt for database credentials
read -p "Enter Database Name: " DB_NAME
read -p "Enter Username: " DB_USER
read -s -p "Enter Password: " DB_PASS
echo
# Execute all ALTER TABLE statements in one query
mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" -Bse "
SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '$DB_NAME'
AND ENGINE = 'InnoDB'
" | mysql -u "$DB_USER" -p"$DB_PASS" "$DB_NAME"
save script: crtl-o,
exit script: crtl-x
make script executable
execute script: sudo ./row_format.sh
inputs :
1: nextcloud
2: root
3: your-admin-password
wait until script ends.
This worked for me on a nextcloudpi.
I use linuxserver.io ’s docker containers for both mariadb and nextcloud on UnRaid host. Here is what I had to do. Copy the script from @YannicK_SupRavII , and create an executable .sh file in mariadb’s “config” folder which is mapped to “appdata” on unraid host.
Go into mariadb container terminal and change your directory to “config” folder, and simply execute the script you created. It will ask for your username, password, and database name.
1 Like
It does nor work for me =(
I copied the scrip and do not work, so I logged in in MariaDB and insert the command manually.
First, check the tables row_format
select table_name, row_format from information_schema.tables where table_schema = 'nextcloudDB';
+-----------------------------+------------+
| table_name | row_format |
+-----------------------------+------------+
| oc_ex_task_processing | Dynamic |
| oc_collres_resources | Compressed |
| oc_systemtag | Compressed |
...
| oc_ex_speech_to_text | Dynamic |
| oc_twofactor_backupcodes | Compressed |
| oc_ex_settings_forms | Dynamic |
| oc_preferences_ex | Dynamic |
...
Then i execute the command to alter the row_format
SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'nextcloudDB';
+----------------------------------------------------------------+
| CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') |
+----------------------------------------------------------------+
| ALTER TABLE `oc_ex_task_processing` ROW_FORMAT=DYNAMIC; |
| ALTER TABLE `oc_collres_resources` ROW_FORMAT=DYNAMIC; |
| ALTER TABLE `oc_user_status` ROW_FORMAT=DYNAMIC; |
| ALTER TABLE `oc_flow_checks` ROW_FORMAT=DYNAMIC; |
| ALTER TABLE `oc_privacy_admins` ROW_FORMAT=DYNAMIC; |
| ALTER TABLE `oc_cards` ROW_FORMAT=DYNAMIC; |
...
But finally, if I check again the tipe, it do not change nothing
EDIT:
Also tried executing from console:
It ask password
sudo mysql -h localhost -uroot -p -e "SELECT CONCAT('ALTER TABLE \`', TABLE_NAME, '\` ROW_FORMAT=DYNAMIC;') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'nextcloudDB';"
The -s option gave me some stress: working hard without knowing what it does… (replace -Bse with -Be to make it more verbose)
same as I.
some tables are still in compressed.
gz9
March 4, 2025, 11:28am
36
Same here, looks like Compressed rows are not changing to Dynamic with ‘ALTER TABLE’. May be a table migration is required. Just a thought.
For those for whom it did not work (table not updating), for my part I listed the tables concerned and built a custom SQL query :
ALTER TABLE `oc_authorized_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_preferences` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_password_rv` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_oauth2_access_tokens` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_recent_contact` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_projects` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_profile_config` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_members` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_circles` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_twofactor_providers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_activity_mq` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_duplicatefinder_finfo` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_properties` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_user_transfer_owner` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_text_steps` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_shares_limits` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_retention` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_collres_resources` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_flow_operations_scope` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_device_points` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_text_sessions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_external_config` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_circles` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_systemtag_object_mapping` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mimetypes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_accounts_data` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_filtersb` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_photos` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxpod_tracks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_duplicatefinder_dups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_direct_edit` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_links` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_resources` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_comments` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_vcategory_to_object` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_notes_meta` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_gsshares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_registration` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_text_documents` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_points` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_federated_reshares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_jobs` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_flowupload_directories` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_admin` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders_acl` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_tag` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_pw_tag_rel` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_notifications` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_clouds` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_storages_credentials` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_external_mounts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_folder` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_migrations` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_user` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_clouds` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_keychain` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_appconfig` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_external_options` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_duplicatefinder_dups_f` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_oauth2_clients` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_paymentmodes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_polls` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_geofences` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_dav_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_tag_rv` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_known_users` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_ratelimit_entries` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_addressbooks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_address_geo` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_flow_checks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_trusted_servers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_appt_bookings` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_notif` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_devices` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_accounts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_currencies` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_share_external` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_vcategory` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_password` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_twofactor_backupcodes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxedit_options` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarchanges` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_authtoken` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_members` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_pubshares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_share` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_votes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_favorites` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_schedulingobjects` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_reader_bookmarks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_tileserver` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bruteforce_attempts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarobjects` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_share` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_activity` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxpod_pictures` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_rooms` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendars` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_bill_owers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxmotion_tile_server` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_directlink` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_gsevents` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_dav_cal_proxy` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_preferences` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_log` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_links` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_reader_prefs` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_challenge` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_announcements` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_tokens` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_flow_operations` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cards_properties` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_filecache` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_sessions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_gsshares_mp` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_announcements_map` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_resources_md` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders_trash` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_systemtag` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_comments_read_markers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_addressbookchanges` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_files_trash` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_webauthn` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxmotion_options` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_commands` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_devices` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_bridges` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_bills` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_filecache_extended` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_invitations` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_user_status` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_notifications_pushhash` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_members` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_apikeys` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarsubscriptions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_storages` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_ncdownloader_info` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_privacy_admins` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_tracks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cms_pico_websites` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_notifications_settings` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_attendees` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cospend_categories` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_options` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_internalsignaling` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxpod_tile_servers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_polls_share` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_proxims` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_whats_new` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_file_locks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_collres_accesscache` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_appt_configs` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_login_flow_v2` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxedit_tile_servers` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cards` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_reminders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_collres_collections` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_session` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_gpxpod_directories` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mounts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders_manage` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_talk_rooms` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_maps_favorite_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarobjects_props` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_systemtag_group` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_passwords_folder_rv` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_phonetrack_sessions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_rooms_md` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_users` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_comments` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_tokens` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circle_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_external_applicable` ROW_FORMAT = DYNAMIC;
It’s not elegant, but it works. It took a few minutes to complete.
2 Likes
I had some problems with executing the .sh file you have to make. Problem was that it was not UTF-8 formatted. So make sure it is before executing it.
@Donixon Can you tell us how to do that, please?
Here are a few more to add to your list:
ALTER TABLE `oc_bookmarks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_folders_public` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_root_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_shared_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_shared_to_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_shares` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_tags` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_bookmarks_tree` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_assigned_labels` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_assigned_users` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_attachment` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_board_acl` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_boards` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_cards` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_labels` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_deck_stacks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_accounts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_aliases` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_attachments` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_coll_addresses` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_local_messages` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_mailboxes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_message_tags` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_messages` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_provisionings` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_recipients` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_tags` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mail_trusted_senders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_albums` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_ampache_sessions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_ampache_users` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_artists` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_bookmarks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_cache` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_genres` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_playlists` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_podcast_channels` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_podcast_episodes` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_radio_stations` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_music_tracks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_news_feeds` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_news_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_news_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_news_items` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_richdocuments_assets` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_richdocuments_direct` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_richdocuments_wopi` ROW_FORMAT = DYNAMIC;
and
ALTER TABLE `oc_calendar_appt_configs` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_invitations` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_reminders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendar_rooms_md` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarobjects_props` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_calendarsubscriptions` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_cards` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_circle` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_event` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_member` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_membership` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_mount` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_mountpoint` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_remote` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_share_lock` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_circles_token` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_collres_accesscache` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_collres_collections` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_comments` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_file_locks` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_group_folders_manage` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_groups` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_login_flow_v2` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_mounts` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_notifications_pushhash` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_privacy_admins` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_systemtag_group` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_user_status` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_users` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_webauthn` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_whats_new` ROW_FORMAT = DYNAMIC; ALTER TABLE `oc_whats_new` ROW_FORMAT = DYNAMIC;
1 Like
I’m sure you can do it in your favorite text-editor like Windows Notepad, Notepad++ or (what I used) Synology DSM text-editor.
1 Like