Pode acontecer que você tenha executado o assistente de migração FAL para imagens duas vezes durante a atualização do TYPO3 4.5 para o 6.2. Nesse caso, você acaba com cada imagem existindo duas vezes no mesmo elemento de conteúdo.
Aqui está como limpamos isso:
# Add temporary "deleted" field to sys_file
ALTER TABLE sys_file ADD deleted tinyint(4) NOT NULL DEFAULT '0';
# Create a copy of the table
CREATE TABLE sys_file_copy LIKE sys_file;
INSERT sys_file_copy SELECT * FROM sys_file;
# Update "sys_file" (see below)
UPDATE sys_file SET deleted=1
WHERE deleted=0 AND uid NOT IN (
SELECT MAX(uid) AS uid
FROM sys_file_copy
WHERE deleted=0
GROUP BY BINARY identifier
);
# Clean up in "sys_file_reference" table after "sys_file" update
UPDATE sys_file_reference SET deleted=1
WHERE deleted=0 AND uid_local IN (
SELECT uid FROM sys_file
WHERE deleted=1
);
# Create a copy of the table
CREATE TABLE sys_file_reference_copy LIKE sys_file_reference;
INSERT sys_file_reference_copy SELECT * FROM sys_file_reference;
# Update sys_file_reference (see below)
UPDATE sys_file_reference SET deleted=1
WHERE deleted=0 AND uid NOT IN (
SELECT MAX(uid) AS uid
FROM sys_file_reference_copy
WHERE deleted=0
GROUP BY pid,uid_local,uid_foreign,tablenames,fieldname
);
# Verify the result before you delete the data!
# Delete and clean up
DELETE FROM sys_file_reference WHERE deleted=1;
DELETE FROM sys_file WHERE deleted=1;
ALTER TABLE sys_file DROP deleted;
DROP TABLE sys_file_reference_copy;
DROP TABLE sys_file_copy;
Explicação das consultas de atualização:
Atualizar tabela sys_file
- selecione registros com o mesmo identificador
- usando o modo binário para que a pesquisa diferencia maiúsculas de minúsculas
- manter os resultados com maior uid
- marque o resto como excluído
Atualizar tabela de referência de arquivo sys
- selecione registros com o mesmo pid, uid local, uid estrangeiro, tablenames, fieldname
- mantenha os resultados com o maior uid
- marque o resto como excluído