Ermitteln, wann Daten gespeichert oder entfernt werden
Adobe empfiehlt, zunächst zu ermitteln, ob diese Daten gespeichert werden müssen. Wenn Sie Daten aus einem Altsystem verschieben, sparen Sie sich durch alle Daten, die Sie entfernen können, Zeit und Mühe bei der Migration. (Es gibt Möglichkeiten, Daten zu archivieren, wenn auf sie später zugegriffen werden muss.) Um ein guter Verwalter der Anwendung und Leistung zu sein, ist es in Ordnung, eine Anfrage zum Speichern zusätzlicher Daten anzufechten. Ihr Ziel besteht darin, sicherzustellen, dass die Speicherung der Daten eine Voraussetzung für die Erfüllung einer Geschäftsanforderung ist, die nicht auf andere Weise erfüllt werden kann.
Alte Daten
Wenn Ihr Projekt ältere Daten enthält, wie z. B. alte Bestellungen oder Kundendatensätze, sollten Sie eine alternative Suchmethode in Betracht ziehen. Wenn das Unternehmen beispielsweise den Zugriff auf die Daten nur gelegentlich als Referenz benötigt, sollten Sie eine externe Suche der alten Datenbank implementieren, die außerhalb der Commerce-Plattform gehostet wird, anstatt alte Daten nach Adobe Commerce zu migrieren.
In diesem Fall müsste die Datenbank auf einen Server migriert werden, der entweder eine Web-Schnittstelle zum Lesen der Daten oder möglicherweise eine Schulung im Umgang mit MySQL Workbench oder ähnlichen Tools bietet. Der Ausschluss dieser Daten aus der neuen Datenbank beschleunigt die Migration, da sich das Entwicklungs-Team auf die neue Site konzentrieren kann, anstatt Probleme mit der Datenmigration zu beheben.
Eine weitere damit zusammenhängende Option, um die Daten außerhalb von Commerce zu halten, sie jedoch in Echtzeit zu verwenden, besteht darin, andere Tools wie GraphQL Mesh zu nutzen. Diese Option kombiniert verschiedene Datenquellen und gibt sie als eine einzige Antwort zurück.
Sie können beispielsweise alte Bestellungen aus einer externen Datenbank stitch
, z. B. aus der alten Magento 1-Site, die eingestellt wurde. Zeigen Sie sie dann mithilfe von GraphQL Mesh als Teil des Auftragsverlaufs des Kunden an. Diese alten Bestellungen können mit den Bestellungen aus Ihrer aktuellen Adobe Commerce kombiniert werden.
Weitere Informationen zur Verwendung von API Mesh mit GraphQL finden Sie unter Was ist API Mesh) und GraphQL Mesh Gateway.
Migrieren von alten Daten mit Erweiterungsattributen
Wenn Sie feststellen, dass ältere Daten migriert werden müssen oder dass neue Daten in Adobe Commerce gespeichert werden müssen, empfiehlt Adobe die Verwendung von Erweiterungsattributen. Die Verwendung von Erweiterungsattributen zum Speichern zusätzlicher Daten bietet die folgenden Vorteile:
- Sie können die beizubehaltenden Daten und die Datenbankstruktur steuern, um sicherzustellen, dass die Daten mit dem richtigen Spaltentyp und den richtigen Indizes gespeichert werden.
- Die meisten Entitäten in Adobe Commerce unterstützen die Verwendung von Erweiterungsattributen.
- Erweiterungsattribute sind ein speicherunabhängiger Mechanismus, der die Flexibilität bietet, die Daten am optimalen Speicherort für Ihr Projekt zu speichern.
Zwei Beispiele für Speicherorte sind Datenbanktabellen und Redis. Bei der Auswahl eines Standorts ist vor allem zu berücksichtigen, ob ein Standort zusätzliche Komplexität mit sich bringt oder die Leistung beeinträchtigt.
Erwägen anderer Alternativen
Als Entwickler ist es wichtig, immer die Verwendung von Tools außerhalb Ihrer Adobe Commerce-Umgebung in Betracht zu ziehen, z. B. GraphQL Mesh und Adobe App Builder. Diese Tools können Ihnen dabei helfen, den Zugriff auf die Daten zu bewahren, haben jedoch keine Auswirkungen auf die Commerce-Kernanwendung oder die zugrunde liegenden Datenbanktabellen. Mit diesem Ansatz stellen Sie Ihre Daten über eine API zur Verfügung. Anschließend fügen Sie Ihrer App Builder-Konfiguration eine Datenquelle hinzu. Mithilfe von GraphQL Mesh können Sie diese Datenquellen kombinieren und eine einzige Antwort erzeugen, wie in Legacy-Daten beschrieben.
Weitere Informationen zu GraphQL Mesh finden Sie unter GraphQL Mesh Gateway. Weitere Informationen zum Adobe-App Builder finden Sie unter Einführung in App Builder.
Ändern einer Kerntabelle oder Drittanbietertabelle
Wenn Sie sich entscheiden, Daten durch Ändern einer Adobe Commerce oder einer Datenbanktabelle von Drittanbietermodulen zu speichern, befolgen Sie die folgenden Richtlinien, um die Auswirkungen auf Stabilität und Leistung zu minimieren.
- Nur neue Spalten hinzufügen.
- Ändern Sie nie den Typ-Wert einer vorhandenen Spalte. Ändern Sie beispielsweise keine
integer
in einevarchar
, um Ihren speziellen Anwendungsfall zu erfüllen. - Vermeiden Sie das Hinzufügen von Spalten zu EAV-Attributtabellen. Diese Tabellen sind bereits mit Logik und Verantwortung überlastet.
- Bestimmen Sie vor dem Anpassen einer Tabelle deren Größe. Das Ändern großer Tabellen wirkt sich auf die Bereitstellung aus, was beim Anwenden von Änderungen zu Verzögerungen von Minuten oder Stunden führen kann.
Best Practices für das Ändern einer externen Datenbanktabelle
Adobe empfiehlt, diese Schritte auszuführen, wenn Sie eine Spalte zu einer Core-Datenbanktabelle oder einer Drittanbietertabelle hinzufügen:
-
Erstellen Sie ein Modul mit einem Namen in Ihrem Namespace, der darstellt, was Sie aktualisieren.
Beispiel:
app/code/YourCompany/Customer
-
Erstellen Sie die entsprechenden Dateien, um das Modul zu aktivieren (siehe Erstellen eines Moduls.
-
Erstellen Sie eine Datei mit dem Namen
db_schema.xml
im Ordneretc
und nehmen Sie die entsprechenden Änderungen vor.Generieren Sie ggf. eine
db_schema_whitelist.json
. Weitere Informationen finden unterDeklaratives Schema“.