webfarben/contao-news-import
最新稳定版本:v1.2.51
Composer 安装命令:
composer require webfarben/contao-news-import
包简介
Contao 5 bundle to import legacy news from an external database
README 文档
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.
统计信息
- 总下载量: 21
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2026-03-18