webfarben / contao-news-import
Contao 5 bundle to import legacy news from an external database
Package info
github.com/webfarben/contao_news_import
Type:contao-bundle
pkg:composer/webfarben/contao-news-import
Requires
- php: ^8.1
- contao/core-bundle: ^5.0
- doctrine/dbal: ^3.7 || ^4.0
- dev-main
- v1.2.51
- v1.2.50
- v1.2.49
- v1.2.48
- v1.2.47
- v1.2.46
- v1.2.45
- v1.2.44
- v1.2.43
- v1.2.42
- v1.2.41
- v1.2.40
- v1.2.39
- v1.2.38
- 1.2.37
- 1.2.36
- 1.2.35
- 1.2.34
- 1.2.33
- 1.2.32
- 1.2.31
- 1.2.30
- 1.2.29
- v1.2.28
- v1.2.27
- v1.2.25
- v1.2.24
- v1.2.23
- v1.2.22
- v1.2.21
- v1.2.20
- v1.2.19
- v1.2.18
- v1.2.17
- v1.2.16
- v1.2.15
- v1.2.14
- v1.2.13
- v1.2.12
- v1.2.11
- v1.2.10
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2026-04-23 00:05:38 UTC
README
Contao-5-Bundle zum Import von Legacy-News aus einer externen Datenbank.
Ziele
- Import der News-Archive aus
tl_news_archive - Import der News-Metadaten aus
tl_news - Import der News-Inhalte aus
tl_content(ptable = tl_news) - Import der Datei-Referenzen (UUIDs) aus
tl_filesdirekt aus der alten Datenbank (empfohlen für konsistente Migration) - Optional: Import der Datei-Referenzen aus Exportdateien (CSV/JSON)
Was wird importiert?
tl_news_archive(Archive/Kategorien)tl_news(News-Metadaten)tl_content(Inhaltselemente der News,ptable = tl_news)tl_files(Datei-Referenzen inkl. UUIDs, direkt aus alter DB oder per Datei)
Installation
-
Bundle in ein Contao-5-Projekt einbinden (z. B. als Pfad-Repository oder VCS-Repository).
-
Abhängigkeiten installieren:
composer require webfarben/contao-news-import
-
Legacy-DB in der
.env.localdes Contao-Projekts konfigurieren:LEGACY_DATABASE_URL="pdo-mysql://user:pass@127.0.0.1:3306/legacy_db"
Import ausführen
php vendor/bin/contao-console contao:legacy-news:import
Import im Backend
Nach der Installation erscheint im Contao-Backend unter System das Modul News-Import.
Dort kannst du den Import ohne Konsole ausführen:
- Zugangsdaten der Quelldatenbank (Host, Port, Datenbank, Benutzer, Passwort)
- optionales Speichern der Zugangsdaten in
localconfig.php - Archive-ID-Liste (kommagetrennt, optional)
- Seit/Bis (YYYY-MM-DD oder Timestamp, optional)
- Dry-Run
- News/Inhalte vorab leeren
- optional auch Archive leeren
Nach dem Lauf wird die Tabelle mit Insert/Update/Skip-Werten direkt angezeigt.
Hinweis: Fuer den Import ueber das Backend ist keine LEGACY_DATABASE_URL in .env.local mehr notwendig, sofern die Quelldatenbank im Formular eingetragen wird.
Optionen:
--dry-run: Nur simulieren, keine Daten schreiben.--truncate: Vor dem Importtl_newsund News-bezogenetl_content-Datensätze löschen.--truncate-archives: Nur zusammen mit--truncate; löscht zusätzlichtl_news_archive.--archive-id=ID: Nur bestimmte Archive importieren (mehrfach nutzbar).--since=YYYY-MM-DD|TIMESTAMP: Nur News ab Datum importieren.--until=YYYY-MM-DD|TIMESTAMP: Nur News bis Datum importieren.
Beispiel Dry-Run:
php vendor/bin/contao-console contao:legacy-news:import --dry-run
Beispiel nur fuer zwei Archive und Datumsbereich:
php vendor/bin/contao-console contao:legacy-news:import \ --archive-id=3 \ --archive-id=8 \ --since=2024-01-01 \ --until=2024-12-31
Mapping konfigurieren
Das Bundle kann Legacy-Spalten auf Zielspalten mappen. Dazu in der konsumierenden App (nicht im Vendor-Ordner) z. B. in config/services.yaml konfigurieren:
parameters: contao_import.column_map: tl_news: legacy_headline: headline legacy_teaser: teaser tl_content: legacy_text: text
Feste Werte pro Tabelle koennen ebenfalls gesetzt werden:
parameters: contao_import.fixed_values: tl_content: ptable: tl_news
Idempotenz
Beim ersten echten Lauf erzeugt der Importer die Tabelle tl_contao_import_map.
- Speichert Zuordnung
source_table + source_id -> target_id - Speichert pro Datensatz einen Hash
- Ueberspringt bei unveraenderten Daten den Schreibvorgang
So bleiben wiederholte Importe schnell und stabil.
GitHub Packages
Wenn du das Bundle ueber GitHub bereitstellen willst, siehe docs/GITHUB_PACKAGES.md.
Wichtiger Hinweis zu Bildern
Alle in den News referenzierten Bilddateien (z. B. für singleSRC, multiSRC, enclosure) müssen vor dem Import manuell und mit korrekter Ordnerstruktur in das Zielverzeichnis files/ der Contao-Installation kopiert werden. Die Erweiterung übernimmt keine automatische Dateikopie!
Fehlende Dateien führen dazu, dass die Bildreferenzen in den importierten News leer bleiben.