Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Daten aus externer DB in Drupal einlesen

Eingetragen von Cutterxl (14)
am 19.05.2010 - 13:36 Uhr in
  • Views
  • Drupal 6.x

Hallo,

ich hoffe ich bin hier im korrekten Forum gelandet.
Bei uns in der Firma gibt es aktuell eine Arbeitszeitserfassung bzw. kleine Projektverwalung auf Basis von PHP und mysql. Da Sie langsam nicht mehr den Anforderungen entspricht, soll Sie neu entwickelt werden. Als Drupalfan habe ich vorgeschlagen, das Ganze in Drupal 6 umzusetzen. Schwupps war ich Projektverantwortlicher ;-)
Ich habe mir mittels CCK eine Struktur zusammengebastelt von der ich glaube, dass Sie die alten Zusammenhänge plus Mehrfunktion erfüllt. Nun stehe ich allerdings vor dem Problem, das die Daten der letzen 10 Jahre aus der alten DB in Drupal hinein müssen. Ausserdem muss soll die alte php maske so angepasst werden, das sie weiterhin auch ohne drupal auf die Elemente zugreifen kann.
Da ein DB import zu Nodes sicherlich nichts Neues ist habe ich hier im Forum geschaut aber noch nichts passendes gefunden. Per ggogle habe ich ein paar threads in englischsprachigen Foren gefunden. Eigentlich kein Problem, aber nach ein paar stunden dröhnt mir langsam der Schädel.
Hat jemand einen interessanten Lösungsvorschlag für mich ? Konkret suche ich eine Möglichkeit aus verschiedenen Tabellen einer bestehenden DB Daten in CCK-Nodes ähnlicher Form zu drücken. Optimal wäre es Beziehungen direkt als Nodereferences darzustellen.

Besten Dank,

Der Cutter

‹ Ranglisten berechnen // Wie Nodes aufbauen/verknüpfen? Selectbox Abhängigkeit ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich glaube das wird von

Eingetragen von Sera@drupal.org (6)
am 19.05.2010 - 14:53 Uhr

Ich glaube das wird von keinem Modul wirklich erschlagen.
Das Problem liegt darin, dass ein oder mehrere Content-Types mit wie auch immer verschachtelten CCK Feldern (direkte Eingabe oder node-references) gänzlich anders verwaltet wird wie eine relationale Datenbank.
Du hast ja meist innerhalb einer Tabelle eine Art automatischen Zähler, vielleicht eine ID, dann irgendwelche Felder.
In Drupal hingegen gibt es gänzlich andere Zähler, die zudem von Drupal selbst verwaltet werden. Eine Relation über IDs herzustellen, ist zwar sinnvoll, aber wie stellt man hier die Konsistenz der beiden Datenbanken her?
Du müsstest pro Tabelle der ursprünglichen DB einen Content Type in Drupal anlegen.

Dann wiederum aber gibt es den Bug (oder das nette Feature), dass die CCK - Feld-Inhalte nicht unbedingt innerhalb der content-type - Tabellen gespeichert werden. Kommt das Feld nur in einem Content Type vor, werden die Inhalte dort vorgehalten. Kommt ein Feld in mehreren Content-Types vor, wird für das Feld eine neue Tabelle angelegt, in der dann die Feldinhalte, verknüpft mit den nids und vids abgelegt sind.

Dadurch scheitern jegliche direkten Importe.

Man könnte nun natürlich schauen, ob man die Felder aus der alten DB ausliest und dann jeweils automatisiert über das normale "create content" in Drupal eingibt, aber hier kommt auch wieder das Problem der Reihenfolge zum Tragen. (Und so ein Modul müsste man auf jedenfall selber entwickeln...)
Du kannst eine nodereference nur dann auswählen, wenn du den entsprechenden Inhalt vorher eingegeben hast.

Was man vielleicht einfacher realisieren könnte:
Eine Schnittstelle (wohl selber programmiert) von Drupal auf die alte DB, um die alten Daten darzustellen. Die Eingabe von neuen Daten müsste dann über die Eingabemasken von Drupal geschehen.

Nichtsdestotrotz sehe ich keine Out-of-the-Box Lösung.

Die Frage, die sich mir allerdings ganz pragmatisch stellt: Wenn es eine Zeiterfassung ist, wofür braucht ihr die Daten der letzten 10 Jahre? Bei Projektdaten mag dies noch sinnvoll sein, aber Zeiterfassungsdaten?
Und: Wofür braucht ihr Drupal hierfür? Die Migration von anderen Datenbank nach Drupal ist beliebig komplex, in Drupal kann man die Daten nicht selber verwalten. Der einzige Vorteil wären die Views, die man sich anhand der Daten selber generieren kann.
Aber je nach Komplexität der Views wäre eine php-Implementierung dieser Views für das alte System ggf. noch eine sinnvollere Alternative.

Wir haben ein ähnliches Problem mit MS Access-Datenbanken bzw. Cobra und Drupal... - Von daher würden mich andere Ansätze und Lösungvorschläge zu dem o.g. Problem ebenfalls interessieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Datenimport aus externer DB?

Eingetragen von Cutterxl (14)
am 19.05.2010 - 15:32 Uhr

Hallo,

erst einmal Danke für die zügige Antwort!

Zitat:

Die Frage, die sich mir allerdings ganz pragmatisch stellt: Wenn es eine Zeiterfassung ist, wofür braucht ihr die Daten der letzten 10 Jahre? Bei Projektdaten mag dies noch sinnvoll sein, aber Zeiterfassungsdaten?

Dies hängt unmittelbar zusammen: Zeiten werden Projekten zugeordnet, die wiederum Abgerechnet, erweitert, usw. werden müssen.
Views auf die alte DB ist leider auch keine Möglichkeit, da wie gesagt das DB-Modell so oder so aufgebohrt werden muss. Es soll eine Lösung aus "einem Guß" sein.

Da verschiedene Abteilungen, bzw Personen sehr verschiedene Projektsichten haben,wären die Views von Drupal eine tolle Sache. Desweiteren habe ich damit gleich eine Rechteverwaltung und komfortable Eingabemöglichkeiten für verschiedenste Datentypen.

An Drupal halte ich also fest ;-)

Ich bin gar nicht davon ausgegangen, das es dafür ein feriges Modul gibt, habe aber in anderen Foren Stichwörter wie node_save oder drupal_execute aufgeschnappt mit denen es anscheinend möglich ist Drupal dazuzubringen neue Nodes automatisiert anzulegen und bestimmte Verknüpfungen und Prüfungen von Drupal selbst durchführen zu lassen. Das Problem ist, dass sich Diskussionen in Foren oft verlaufen.Wenn man stundenlang in einem Bereich forstet, in dem fast jede Info eine Neue ist und zudem nicht in Muttersprache, platzt einem irgendwann der Kopf ;-)
Das mit den Relationen war nur ein dreister Zusatzwunsch, man weiß ja nie. :oD
Deshalb hoffe ich hier jemanden zu finden, der auf diesem oder anderem Wege bereits eine Lösung gebastelt hat von der ich profitieren kann.
Falls sich jemand angesprochen fühlt oder einen Verweis auf einen guten Artikel/Screencast/...hat: Bitte melden!

Besten Dank

Der Cutter

  • Anmelden oder Registrieren um Kommentare zu schreiben

Frage:

Eingetragen von sepp68 (444)
am 19.05.2010 - 18:23 Uhr

Willst du aus genau einem Datensatz der alten Zeiterfassung einen neuen Node in Drupal erstellen ?
Wenn ja, würde ich die Daten sequenziell aus der alten DB auslesen und Nodes per "node_save" oder hook_insert (http://api.drupal.org/api/function/hook_insert/6)

  • Anmelden oder Registrieren um Kommentare zu schreiben

So ähnlich

Eingetragen von Cutterxl (14)
am 20.05.2010 - 07:35 Uhr

Leider passen alte und neue Datensätze nicht 100% auf einander, deshalb werde ich mir wohl für jeden Neuen nodetype ein skrippt schreiben, das mir die entsprechenden Infos aus den alten Daten zusammenklaubt. Der Ansatz ist jedoch der Gleiche: Node für Node einfügen, was besseres fällt mir da nicht ein.
Viele Wege führen nach Rom - Die Frage ist: Welcher ist ein erfolgversprechender, von was sollte ich besser die Finger lassen? Möchte nicht viel Zeit in etwas investieren, was sich im nachhinein als schmutzig herausstellt oder das System im Nachinein irgendwelche Probleme hat.
Hat jemand mit node_save, hook_insert, drupal_execute, noch was anderes ... gearbeitet und kann mir sagen was am Besten funzt bzw. worauf man achten sollte?
Ursprünglich hatte ich vor, alles direkt per sql von DB zu DB zu exportieren, bin mir aber unsicher, ob ich evtl an irgendeiner Stelle etwas vergesse, bzw Drupal durcheinanderbringe wenn plötzlich nodes da sind die nicht selbst angelegt sind (vortlaufende Zählung, ect)
Deshalb suche ich jetzt nach dem elegantesten "Drupal way" dafür

Hat jemand Tipps für mich ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 3 Tagen 11 Stunden
  • Hey danke
    vor 4 Tagen 6 Stunden
  • Update: jetzt gibt's ein
    vor 5 Tagen 48 Minuten
  • Hallo, im Prinzip habe ich
    vor 1 Woche 2 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 2 Tagen
  • Kannst doch auch alles direkt
    vor 1 Woche 6 Tagen
  • In der entsprechenden View
    vor 1 Woche 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 6 Tagen
  • gelöst
    vor 4 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association