2014-01-08 10 views
5

Crossposting: https://orchard.codeplex.com/discussions/484033Weird-Taxonomie Migrationsproblem (1.6 bis 1.7.2) in Orchard CMS

Ich bin von der Orchard CMS 1.6 bis 1.7.2 migrieren. Um einige Hintergrundinformationen zu geben, ich habe eine vorherige Ausgabe hurdled vor Bedingungen in Taxonomien Migration durch die Tabellen zu aktualisieren:

UPDATE Contrib_Taxonomies_TermPartRecord 
SET Path = '/' + Path 
WHERE Path NOT LIKE '/%' 

UPDATE Contrib_Taxonomies_TermPartRecord 
SET Path = '/' 
WHERE Path IS NULL 

So habe ich einige Content-Typen, die einige Taxonomien müssen ihnen verbunden sind.

  1. kann ich neue Inhaltselemente erstellen ohne zugehörige Taxonomie Begriffe (Auswahl nichts)
  2. ich nur neue Inhaltselemente mit einigen spezifischen Bedingungen erstellen kann (habe kein Muster im Sinne gesehen)
  3. ich kann nicht erstellen/speichern/veröffentlichen neue Inhaltselemente auf einige spezifische Begriffe zugeordnet (Seite nur zu laden versucht, und es ist wie es im Hintergrund eine Endlosschleife ist)

Schlimmste ist, dass keine Fehler geworfen oder geloggt, auch im Debug-Modus.

Wer hat irgendwelche Ideen oder führt? Hat jemand schon einmal ähnliches Verhalten erlebt?

Danke!

Antwort

1

Dieses Problem wurde bereits behoben here.

Ich denke, das Taxonomie-Modul in Version 1.7.2 verwendet eine zusätzliche Verknüpfung zwischen dem Container (Taxonomie) und dem Begriff, wurde aber nicht ordnungsgemäß während der Migration von älteren Versionen implementiert.

Die gebrochene Bindung verursacht eine Endlos-Schleife (auf den Hyperlink finden Sie oben), wenn die betroffene Begriff (ich irgendein Problem Spar es begegnen sich nicht, nur wenn Veröffentlichung) ein Inhaltselement Veröffentlichung enthält.

Die Verknüpfung kann durch Ausführen der SQL-Anweisung unten gegen die Datenbank leicht behoben werden:

UPDATE 
    Common_CommonPartRecord 
SET 
    Container_Id = Orchard_Taxonomies_TermPartRecord.TaxonomyId 
FROM 
    Common_CommonPartRecord 
    INNER JOIN Orchard_Taxonomies_TermPartRecord ON 
     Common_CommonPartRecord.Id = Orchard_Taxonomies_TermPartRecord.Id 

Die SQL-Anweisung wird nehmen Sie die TaxonomyId aus der Tabelle Orchard_Taxonomies_TermPartRecord und füllt es in * Container_id * von die Tabelle Common_CommonPartRecord

0

ich eine Abhilfe für dieses Problem zu finden, verwaltet und falls es jemand will, hier ist das, was ich getan habe:

  1. Liste betroffen Taxonomie Begriffe
  2. neue Begriffe hinzufügen betroffenen ersetzen
  3. Karte alten Begriffe neue (Haupttabelle Orchard_Taxonomies_TermPartRecord ist, verbinden sie mit Title_TitlePartRecord und Orchard_Framework_ContentItemRecord)
  4. aktualisieren Orchard_Taxonomies_TermContentItem Aufzeichnungen (Karten-Inhalt Es ems getaggt mit Bezug) alte Begriffe mit neuen
  5. Löschen Sie alte betroffenen Begriffe
  6. Umbenennen neue Begriffe zu alt betroffenen diejenigen

Es ist ein langwieriger und akribisch heikler Prozess zu ersetzen, so dass ich schlage vor, Sie es als ein tun letzter Ausweg. Nahm mich etwa eine Stunde.