Erste Schritte mit 7x SQLI Import
Diese Seite installiert 7x SQLI Import 2.0, prüft, ob es funktioniert, und geht einen ersten Import einer CSV-Datei Schritt für Schritt durch.
Inhalt
- Voraussetzungen
- Installieren
- Der Reiter Importe
- Ein erster Import, Schritt für Schritt
- Auf der Kommandozeile
Voraussetzungen
- Exponential 6.0.14 oder neuer, PHP 8.0 oder neuer. Exponential 6.0.15 bringt die Glocke in der Kopfzeile, die Datentabellen und die Kästen Looking for…? der Import- und Exportwerkzeuge dazu.
- Die Erweiterung expqueue (die Job-Warteschlange): Ihre Worker verarbeiten jeden Lauf.
- Die Erweiterung expui (die gemeinsamen Bausteine der Administration).
- Optional: die PHP-Erweiterung zip, für Tabellenquellen (XLSX und ODS).
Installieren
Das Paket anfordern:
composer require se7enxweb/sqliimport:^2.0@alphaexpqueue,expuiundsqliimportinsettings/override/site.ini.append.phpaktivieren ([ExtensionSettings] ActiveExtensions[]), oder nur für die Administration inActiveAccessExtensions[].Die Autoloads neu erzeugen und die Tabellen anlegen. Beide Befehle
install-schemalassen sich gefahrlos wiederholen; der zweite aktualisiert auch die Tabellen von 1.x:php bin/php/ezpgenerateautoloads.php -e ./console ext:expqueue:install-schema ./console ext:sqliimport:install-schemaBeide Cron-Teile jede Minute laufen lassen:
* * * * * cd /path/to/exponential && php runcronjobs.php -q expqueue * * * * * cd /path/to/exponential && php runcronjobs.php -q sqliimportDen INI-Cache leeren:
php bin/php/ezcache.php --clear-tag=ini.
Das Handbuch der Erweiterung hat dieselben Schritte mit jeder Einstellung
(/exphelp/viewer/ext/sqliimport/ger-de/getting-started.md und /exphelp/viewer/ext/sqliimport/ger-de/install.md).
Der Reiter Importe
Die Erweiterung fügt der Administration den Reiter Imports (Importe) hinzu. Ein Siteaccess, der
[TopAdminMenu] Tabs[] in seiner eigenen menu.ini.append.php zurücksetzt (eine Zeile Tabs[] ohne Wert), muss
Tabs[]=sqliimport dort selbst aufführen, sonst erscheint der Reiter in diesem Siteaccess nicht.
Zwei Richtlinien regeln den Reiter, beide mit einer Handler-Einschränkung (SQLIImport_Type):
| Richtlinie | Erlaubt |
|---|---|
Manage imports (sqliimport/manage) | Alles: Importe anlegen, bearbeiten, kopieren, aktivieren, deaktivieren und löschen, Zeitpläne, Auslöser, die Seite Settings mit Export und Import von Definitionen, und Ausführen |
Run imports (sqliimport/run) | Den Reiter ansehen und Importe ausführen: Run now, Dry run, Cancel, Retry failed rows, Undo this run |
Für 1.x angelegte Rollen funktionieren weiter: sqliimport/manageimports zählt als Manage imports, und
sqliimport/listimports lässt einen Benutzer den Reiter ansehen.
Das linke Menü des Reiters verweist auf die Übersicht (Overview), Statistics, New import, Schedules, Catalogue, Settings, Running runs, Failed runs und die Job queue, darunter auf die anderen Import- und Exportwerkzeuge der Website. Ein Verweis erscheint nur für Benutzer, die seine Seite öffnen dürfen.
Ein erster Import, Schritt für Schritt
Das Beispiel importiert eine Liste von Produkten aus einer CSV-Datei als Ordner. Es ist der Demo-Import „Demo: Products (CSV)“ der Testinstallation; jede kleine CSV-Datei funktioniert genauso.
Die Datei products.csv (die ersten Zeilen von 50):
id,name,code,description
1,Demo tea 1: Assam,T001,"A demo product of the CSV import, line 1."
2,Demo tea 2: Ceylon,T002,"A demo product of the CSV import, line 2."
3,Demo tea 3: Darjeeling,T003,"A demo product of the CSV import, line 3."Den Editor öffnen. Klicken Sie unter Imports auf New import. Sollen die Objekte unter einem bestimmten Ordner entstehen, öffnen Sie stattdessen diesen Ordner und wählen Import/Export > Import into this folder…: Der Editor sagt dann, wo die Objekte angelegt werden.

Der Schritt Quelle eines neuen Imports, aus einem Ordner geöffnet: der Hinweis „The objects will be created in Media“, die Felder Name, Identifier und Description und die Quelltypen, gruppiert wie im Katalog Schritt 1, Quelle. Name:
Products (CSV). Lassen Sie den Bezeichner leer (er wirdproducts-csv). Wählen Sie CSV and delimited text, dann An uploaded file, und wählen Sieproducts.csv. Setzen Sie die Option Key field aufid. Klicken Sie auf Save and continue. Der Import existiert jetzt, noch deaktiviert.Schritt 2, Verarbeitung. Lassen Sie Mapping to a content class (no code) gewählt. Tragen Sie die Knoten-ID des Elternordners ein, lassen Sie Create new, update existing stehen und klicken Sie auf Save and continue.
Schritt 3, Zuordnung. Wählen Sie die Klasse Folder und speichern Sie. Wählen Sie unter How a record finds its object eine Remote-ID mit dem Muster
product-{id}: Dieselbe Zeile der Datei findet immer denselben Ordner, ein zweiter Lauf aktualisiert also, statt zu verdoppeln. Klicken Sie auf Auto-match by name:namelandet in Name. Tragen Siecodebei Short name unddescriptionmit der Umwandlungrichtextbei Summary ein. Haken Sie Required bei Name an. Speichern und weiter.Schritt 4, Vorschau. Die ersten 20 Zeilen der Datei erscheinen als Tabelle, dazu ein Probelauf dieser Zeilen: Beim ersten Lauf sagt jeder Datensatz Created. Noch ist nichts veröffentlicht.
Schritt 5, Zeitplan. Lassen Sie vorerst Never stehen. Speichern und weiter.
Schritt 6, Prüfung. Haken Sie The import is enabled an und klicken Sie auf Save and run. Die Seite des Laufs öffnet sich und verfolgt ihn live; nach wenigen Sekunden endet er mit 50 created.
Die 50 Ordner existieren jetzt unter dem Elternordner, jeder mit der Remote-ID product-1 bis product-50. Lassen
Sie den Import ein zweites Mal unverändert laufen: Der Lauf meldet 50 unchanged, und keine neue Version wird
veröffentlicht.
Ändert sich die Datei später, klicken Sie zuerst auf Dry run. Mit zwei umbenannten Produkten und einer Zeile ohne Namen sagt der Probelauf Feld für Feld, was geschähe, bevor etwas geschrieben wird:

Wie es weitergeht: Der Import-Editor erklärt jeden Schritt genauer, und Importe und Läufe, was mit der fehlgeschlagenen Zeile zu tun ist und wie sich ein Lauf rückgängig machen lässt.
Auf der Kommandozeile
Die Importe auflisten und einen zuerst als Probelauf ausführen:
./console ext:sqliimport:list
./console ext:sqliimport:run products-csv --dry-run --wait
./console ext:sqliimport:run products-csv --wait
./console ext:sqliimport:status <run id>Warnt die Übersicht, dass die Tabellen oder die Job-Warteschlange fehlen, führen Sie den passenden Befehl
install-schema aus. Hilfe, wenn etwas nicht funktioniert: /exphelp/viewer/ext/sqliimport/ger-de/troubleshooting.md.
Weiter: Der Import-Editor.