You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
manage.py migrate_uuids --execute stopped with Ctrl-C now reports like a failed run and exits with status 1: the statement it was running (which the server finishes anyway, since Ctrl-C reaches Python only when the statement returns, so it may have completed) and the state of every UUID column, instead of a traceback. The session is restored and the connection closed; innodb_alter_copy_bulk is restored as before. A second Ctrl-C while the report is printed still ends with a traceback. - manage.py migrate_uuids --execute refuses to start when the statistics of a table whose size counts for the disk check (a table it rebuilds, or updates with a binary log in ROW format) are stale (information_schema.TABLES reports fewer than half the rows the value scan just counted, or less than 32 bytes, the narrowest UUID, per counted row: MariaDB keeps the row count current while the size waits for ANALYZE TABLE) and its tablespace file size cannot be read: the size check would rest on figures far too low, as right after an import. Run ANALYZE TABLE on it, or give --skip-space-check. Dry runs warn. A cut run leaves statistics behind too, so the failure report names ANALYZE TABLE for the next run. On a server on another host this refusal comes before the one for space that cannot be measured. - manage.py migrate_uuids --execute asks for more temporary and binary log space for ROW_FORMAT=COMPRESSED tables (see Fixed), so it can refuse runs on them that 6.3.2 started, and that then could fail mid-way; --skip-space-check still overrides.
manage.py migrate_uuids sizes each table by its tablespace file (FILE_SIZE of information_schema.INNODB_SYS_TABLESPACES on MariaDB, INNODB_TABLESPACES on MySQL) when it is larger than the information_schema.TABLES estimate: the file is current even right after an import. The views need the PROCESS privilege; without it the estimate is used as before, with the advice to run ANALYZE TABLE.
manage.py migrate_uuids counts ROW_FORMAT=COMPRESSED tables uncompressed for the merge files and the binary log: their size on disk times the page size divided by KEY_BLOCK_SIZE (2 times with the default, half a page). Merge files and binary log hold the rows uncompressed: with a highly compressible 200-character text per row they were measured at up to 4.2 times the size on disk with the default KEY_BLOCK_SIZE, 8.4 times with 4K and 18.4 times with 1K (MariaDB 10.11.14 and 11.8.6), beyond the 2.5 times estimated; less compressible rows stay lower. Scaled, they stay at 1.1 to 2.1 times. The data directory copy stays compressed and keeps its estimate.
manage.py migrate_uuids --execute restores FOREIGN_KEY_CHECKS and the session sql_mode independently, so one failing does not skip the other, and reports a restore that fails (exit status 1, connection closed) instead of hiding the error of the statement that failed. A failure report whose column scan fails too (a lost connection) still prints the failed statement.