Zum Inhalt springen

Database analyzer - Fehlermeldungen wollen nicht verschwinden

Erstellt am 4. April 2014 · 2 Antworten · letzte Antwort am 18. Oktober 2014

Tags: Datenbank, TYPO3 4.x, Frage

snape84 ·

Hallo Forum,
evtl ist das hier das falsche Forum, installiert ist mein TYPO3 ja eigentlich. Allerdings wusste ich sonst keine passendere Einsortierung
habe hier noch ein Projekt unter TYPO3 4.5 lts. Nach einem "compare"mit dem database analyser wollen die folgenden Fehlermeldungen nicht verschwinden, habe "write to database" schon mehrfach durchgeführt:

Changing fields

ALTER TABLE sys_history DROP KEY recordident_1;
ALTER TABLE sys_history ADD KEY recordident_1 (tablename,recuid);
ALTER TABLE sys_history DROP KEY recordident_2;
ALTER TABLE sys_history ADD KEY recordident_2 (tablename,tstamp);
ALTER TABLE sys_refindex DROP KEY lookup_rec;
ALTER TABLE sys_refindex ADD KEY lookup_rec (tablename,recuid);
ALTER TABLE sys_refindex DROP KEY lookup_uid;
ALTER TABLE sys_refindex ADD KEY lookup_uid (ref_table,ref_uid);
ALTER TABLE sys_refindex DROP KEY lookup_string;
ALTER TABLE sys_refindex ADD KEY lookup_string (ref_string);
ALTER TABLE tx_extbase_cache_reflection DROP KEY cache_id;
ALTER TABLE tx_extbase_cache_reflection ADD KEY cache_id (identifier);
ALTER TABLE tx_extbase_cache_object DROP KEY cache_id;
ALTER TABLE tx_extbase_cache_object ADD KEY cache_id (identifier);
ALTER TABLE tt_news_cache DROP KEY tags;
ALTER TABLE tt_news_cache ADD KEY tags (tags);
ALTER TABLE tx_realurl_uniqalias DROP KEY tablename;
ALTER TABLE tx_realurl_uniqalias ADD KEY tablename (tablename);
ALTER TABLE tx_mmforum_cache DROP KEY cache_key;
ALTER TABLE tx_mmforum_cache ADD KEY cache_key (cache_key(255));

Habe die Abfragen auch shcon per Hand durchgeführt, aber auch erfolglos.
Jemand eine Idee wo ich noch ansetzen kann?
Viele Grüße
Snape

jenses ·

Ich würde solche "Fehlermeldungen" einfach ignorieren.
Wie du bei näherem Hinschauen siehst,
soll irgendein Key gelöscht werden, um ihn gleich darauf wieder neu zu erstellen.
Ursache sind wahrscheinlich verschiedene Schreibweisen in ext_tables.sql in den verschiedenen TYPO3-Versionen, die das compare-Script aus dem Tritt bringen.
Ich habe im Laufe vieler Jahre nie irgendeinen Einfluß auf die Performance einer Seite erlebt,
wenn man diese "Fehler" nicht behebt.

giselew ·

Guck Dir mal /typo3/sysext/install/Classes/Updates/SchemaMigrator.php an, dort die Funktion getDatabaseExtra an, etwa auf Zeile 344 (TYPO3 6.1).
Dort wird verglichen was MySQL als Definition hat und was gemäss dem File ext_tables.sql der Extension gelten soll.
Du kannst im ersten for each loop folgendes einbauen und dann im Compare Database das Resultat ansehen. Ich hab das so gemacht, dass er - für eine gegebene Tabelle - den Inhalt des File-Arrays mit dem Inhalt des MySQL-Arrays gegenüberstellt.

public function getDatabaseExtra($FDsrc, $FDcomp, $onlyTableList = '', $ignoreNotNullWhenComparing = TRUE) {
		$extraArr = array();
		$diffArr = array();
		if (is_array($FDsrc)) {
			foreach ($FDsrc as $table => $info) {
// Hier der Einschub zum Debuggen:
				if ($table == 'tx_toctoc_comments_ipbl_static') {
					print '<br>file:<br>';
					print_r ($FDsrc[$table]);
					print '<br>database:<br>';
					print_r ($FDcomp[$table]);
					exit;
				}
// :Ende Einschub zum Debuggen
				if (!strlen($onlyTableList) || \TYPO3\CMS\Core\Utility\GeneralUtility::inList($onlyTableList, $table)) {
					if (!isset($FDcomp[$table])) {
....

tx_toctoc_comments_ipbl_static einfach ersetzen durch die Tabelle die "das Problem" hat.
Oft sinds Leerschläge in der Datei die eliminiert werden müssen.
🙂😉