Setup the env with not converted tables.
Installer > database > fix performs conversion if fixing "Joomla CMS"
No conversion.
See Joomla\Component\Installer\Administrator\Model::fix()
:
if ($i === 'com_admin')
{
$installer = new \JoomlaInstallerScript;
$installer->deleteUnexistingFiles();
$this->fixDefaultTextFilters();
/*
* Finally, if the schema updates succeeded, make sure the database table is
* converted to utf8mb4 or, if not supported by the server, compatible to it.
*/
$statusArray = $changeSet['changeset']->getStatus();
if (count($statusArray['error']) == 0)
{
$installer->convertTablesToUtf8mb4(false);
}
}
Conversion is checked for com_admin
$i
which is an extension_id and is always numeric.
There is another issue with #__ucm_history
renamed to #__history
but #__ucm_history
is still presented in utf8mb4 conversion SQL, hence conversion is never finished.
Labels |
Added:
?
|
@Denitz You have discovered a double bug ;-)
$i
used in the comparison is not the extension ID, it is the index in the array, i.e. 0
for the first extension. The extension id is the value $cid
.'com_admin'
.@richard67 Argh, yes, $i is even worse, good catch!
I also guess Joomla\CMS\Schema\ChangeSet::__construct
should have phpDoc DatabaseInterface
for $db
but not DatabaseDriver
, we have inspection error:
Expected parameter of type '\Joomla\Database\DatabaseDriver', '\Joomla\Database\DatabaseInterface' provided
That's another issue.
Status | New | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2020-07-30 11:02:10 |
Closed_By | ⇒ | richard67 |
Confirmed. It seems that PR #17537 which introduced database fix for expensions has not really been tested regarding the utf8mb4 conversion.
Will see if I can fix that or find someone who can.
See issue #30224 . Fix is on the way.