Update auf 4.9.0

Hallo liebe Entwickler,

ich versuche schon den halben Tag erfolglos ein Update auf die 4.9.0 vorzunehmen. Ausgangsversion ist die 4.8.7 …

Die UpdateApp bricht immer wieder ab. Auch wenn ich nur die SQL Daten in der alten 4.8.7 Datenbank ausführen möchte bekomme ich folgenden Fehler:

[B]ERROR 1062 (23000) at line 31: Duplicate entry ‘0-0’ for key ‘OXMAINIDX’
[/B]
Die Update-App sagt folgendes:

oxConnectionException—!–NOT CAUGHT–!--oxException (time: 2014-10-02 16:06:31): [1062]: mysql error: [1062: Duplicate entry ‘0-0’ for key ‘OXMAINIDX’] in EXECUTE (ALTER TABLE oxobject2category DROP INDEX OXMAINIDX, ADD UNIQUE OXMAINIDX (OXCATNID , OXOBJECTID), ) with user hoehlmann Stack Trace: #0 <<Pfad>>/core/adodblite/adodbSQL_drivers/mysql/mysql_driver.inc(369): adodb_throw(‘mysql’, ‘EXECUTE’, 1062, ‘Duplicate entry…’, ‘ALTER TABLE ox...', false, Object(object_ADOConnection)) #1 <<Pfad>>/core/adodblite/adodb.inc.php(316): mysql_driver_ADOConnection->do_query('ALTER TABLEox…’, -1, -1, false) #2 <<Pfad>>/core/oxlegacydb.php(197): ADOConnection->Execute(‘ALTER TABLE ox...', false) #3 <<Pfad>>/updateApp/core/updateBase.php(166): oxLegacyDb->execute('ALTER TABLEox…’) #4 <<Pfad>>/updateApp/core/updateBase.php(91): updateBase->updateSql(0) #5 <<Pfad>>/updateApp/core/updateProcess.php(168): updateBase->update(‘updateSql’, 0) #6 <<Pfad>>/updateApp/ui/http/ajax.php(39): updateProcess->runStep() #7 {main} Connection Adress --> Connection Error --><<Pfad>>

Darauf wird in den Release-Notes explizit hingewiesen:

please check this table for duplicate records before updating!

http://wiki.oxidforge.org/Downloads/4.9.0_5.2.0#oxobject2category_index_OXMAINIDX_is_unique

Hallo :slight_smile:

mich verwirrt bei der Geschichte die Namensgebung, warum nennt man es “OXMAINIDX”?

Ich interpretiere daraus, dass ich darüber die Main-Category (Hauptkategorie) ableiten kann. Dabei sagt dieser neue Schlüssel

UNIQUE `OXMAINIDX` (`OXCATNID` , `OXOBJECTID`)

nur aus, dass man einen Artikel nur 1x eine bestimmte Kategorie zuordnen kann.

Oder habe ich einen Denkfehler?

Viele Grüße
indianer3c

MAINIDX = Hauptindex

Danke dir :slight_smile:

(please check this table for duplicate records before updating! )

Vielleicht eine blöde Frage, aber wie mache ich das denn?

Schön, dass es in der Anleitung erwähnt wird, aber einen Hinweis wie es geht finde ich nirgends.

Danke!

-von 4.8.6 auf 4.9.0-

SELECT OXOBJECTID,OXCATNID, count(*) as cnt FROM oxobject2category group by OXOBJECTID,OXCATNID having cnt > 1

gibt die Artikel-Oxid und die Kategorie-Oxid von doppelt zugeordneten Artikeln aus.

Ahja, so war das gemeint. Die sql-abfrage hat auch funktioniert. Doppelte Einträge hatte ich allerdings nicht. Danke!

Mein Fehler während updateapp war ähnlich, aber nicht wirklich identisch. Leider weiss ich nicht mehr genau, was in der Fehlermeldung stand, wurde aber von der utf-8 Einstellung in config.inc.php verursacht.

4.8.6:
$this->iUtfMode = 1; // verursachte bei mir beim updateapp oxConnectionException

4.9.0:
$this->iUtfMode = ‘<iUtfMode>’; // updateapp läuft ohne Fehler durch

Mein update auf 4.9.0 scheint somit abgeschlossen zu sein.

Wie sehe ich denn eigentlich ob mein shop UTF-8 ist?