Daten von externer Drupal Installation nutzen
am 20.05.2008 - 10:48 Uhr in
Bei mir liegt die folgende Situation vor:
Ich habe zwei Drupal 5 Installationen auf meinem Server liegen. Beide Drupals laufen vollkommen autonom, also eigene Datenbank, eigenes Verzeichnis . Auf Drupal #1 gibt es den Inhaltstyp Immobilienbörse mit ca. 30.000 Immobilienanzeigen. Diese Immobilienbörse würde ich nun gerne auch auf Drupal #2 nutzen. Die Frage ist nur, wie man das am geschicktesten machen kann:
Die einfachste Lösung wäre wahrscheinlich eine Synchronisation mit RSS. Der große Nachteil: Sehr Aufwändig bei 30.000 Einträgen, die sich dazu regelmäßig ändern.
Mir wäre es lieber, wenn alle Daten auf Drupal #1 bleiben würde, und Drupal #2 nur auf die dortigen Daten zugreifen würde. Ich müsste also in Drupal #2 einen neuen Inhaltstyp Immobilienbörse anlegen, der sich der Datenbank von Drupal #1 bedient. Die Frage ist hier: Ist das irgendwie machbar?
Oder gibt es andere Möglichkeiten, relativ große Datenmengen von 2 Drupal Installationen zu synchronisieren.
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich habe noch nie davon
am 20.05.2008 - 12:17 Uhr
Ich habe noch nie davon gehört. Evtl. gibt es ein Modul. Ansonsten musst du wohl selber etwas programmieren. Gibt im Pro Drupal Development Buch eine Anleitung, wie man Verbindung auf eine "fremde" DB erstellen kann.
Vielleicht kennt jemand ein Modul, welches dafür ausgelegt ist?
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Ich sehe zwei Möglichkeiten
am 20.05.2008 - 12:40 Uhr
1. Warum nicht die fremde Datenbank benutzen und die Daten für den neuen Inhaltstyp aus der alten Datenbank auslesen. Das hat den Vorteil das die Daten nur auf einer Datenbank gehalten werden. Hier kann man mit _nodeapi() im Status "load" einfach die Datenbankwechsel und die Daten holen. Für den Detailaufruf, der wahrscheinlich existiert, muss dann das gleiche gemacht werden.
2. Nodetype erstellen und ein Datenbankscript schreiben das die Daten erst einmal importiert. Dann würde ich auf die "Arbeitsdatenbank" einen Trigger (ab MySQL 5.1) setzen der die Daten automaisch in der zweiten DB aktualisiert. Das hat den Vorteil das man in Drupal nichts programmieren muss.
Gruß
UwBach
Dafür ist doch Drupals
am 20.05.2008 - 12:40 Uhr
Dafür ist doch Drupals Multisite Feature mit "shared Tables" gedacht. Die beiden Instanzen würden sich genau die benötigten Tabellen 'teilen'.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
Geht das ..
am 20.05.2008 - 12:43 Uhr
.. auch über zwei Datenbanken? Soweit ich gelesen habe funktioniert das nur auf einer Datenbank und arbeitet mit diversen Prefixes.
@md Hast du schon Erfahrungen über verschiedene Datenbanken hinweg?
Gruß
UwBach
Mit einer DB
am 20.05.2008 - 13:06 Uhr
Richtig, das geht mit einer DB. Der Sinn ist ja das verschiedene Instanzen die selbe Drupal Installation benutzen, also auch die Drupal 'Standardtabellen'. So lassen sich bequem Drupal Updates für mehrere Sites durchführen. Das wäre ja bei zwei DBs nicht mehr gegeben. Besondere Tabellen, z.B. von Modulen oder Inhaltstypen kann man mittels Prefixen explizit nur einer oder mehreren Instanzen zuweisen.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
mich würde die variante,
am 20.05.2008 - 13:23 Uhr
mich würde die variante, bestimmte tabellen von verschiedenen drupal datenbanken auf gegebenenfalls verschiedenen servern zu teilen, auch interessieren.
dazu müsste man ja eigentlich "nur" in der settings.php anstelle des db-prefixes die komplette db-url für eben diese tabellen angeben können. da das soweit ich weiss nicht möglich ist, gibt es dazu vielleicht einen anderen weg, den ich bisher übersehen habe? kann natürlich auch sein, dass das einen sicherheitsrelevanten aspekt hat, weswegen das bisher nicht möglich ist?