Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Website mit 2. database

Eingetragen von michaelkurt (47)
am 02.04.2017 - 08:55 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo Forum,
ich finde immer wieder Beitraege, bei denen von 2. Database fuer eine Webseite gesprochen wird. Wann und wie benutzt man diesen? ... wenn ich beispielsweise einen getrennten Datensatz User moechte ? ... d.h. im 2. Datensatz sind nur die User ?
Danke.

‹ Externe jQuery-Plugins nutzen Performance Probleme ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Es gibt Software, die mit

Eingetragen von wla (9461)
am 02.04.2017 - 18:44 Uhr

Es gibt Software, die mit Drupal zusammenarbeitet, aber eine eigene Datenbank benötigt. Ein Beispiel wäre CIVICRM.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ein zusätzlicher

Eingetragen von Zman (185)
am 03.04.2017 - 07:04 Uhr

Ein zusätzlicher Anwendungsfall sind Migrationen. So kannst du mit dem Migrate Modul beispielsweise Datensätze aus älteren Drupalversionen oder anderen Datenbanken (alte CMS Datenbank) migrieren. Hierfür braucht es dann die zweite Datenbankverbindung.

Desweiteren kann jeder Query in Drupal mit einem Target spezifiziert werden. So können bestimmte Datenbankabfragen an eine andere Datenbank gesendet werden, beispielsweise zur Umsetzung einer Master-Slave Architektur (sic!).

Eine Aufsplittung innerhalb der Drupal-Installation wie "User von einer anderen Datenbank laden" ist nicht ohne weiteres möglich.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke fuer Euere Antworten.

Eingetragen von michaelkurt (47)
am 05.04.2017 - 20:41 Uhr

Danke fuer Euere Antworten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Geht schon ....

Eingetragen von qb (149)
am 08.04.2017 - 10:14 Uhr

Also man kann in D7 beliebige viele Datenbanken verwenden, die alle über die D7 API angesprochen werden können. Allerdings musst Du die dazu gehörigen Querys selber zusammenbauen bzw. über die API-Classe generienren lassen. Das ist nicht gerade trivial.
Ich habe das mal gemacht um bei einem Projekt die CMS-Daten von den Nutzdaten (z.B. die WWS-Daten ...), zu trennen. Dazu habe ich dann allerdings auch gleich ein kleines Modul geschrieben welches mir das ganze Handling entsprechend gekapselt hat (Aufwand ca. 5 Tage).

Der Einstig in den Tripp sieht ungefär so aus...

Settings.Php (2. Datenbank anbinden):

    $databases = array (
      'default' => array (
        'default' => array (
          'database' => 'd7_preview',
          'username' => 'root',
          'password' => 'hansi',
          'host'     => 'localhost',
          'port'     => '',
          'driver'   => 'mysql',
          'prefix'   => '',
        ),
      ),
      'nutzdaten_db' => array (
        'default' => array (
          'database' => 'nutzdaten_preview',
          'username' => 'root',
          'password' => 'gretel',
          'host'     => 'localhost',
          'port'     => '',
          'driver'   => 'mysql',
          'prefix'   => '',
          'scripts'  => 'ok',
        ),
      ),
    );

Wechseln kann man die Datenbank dann mit:

   db_set_active( "nutzdaten_db" );
   .
   .
   .

Allerdings sollte dann alles innerhalb der Datenbank mit den Drupal-API Funktionen erledigt werden. Das begint mit der Erzeugung der Tabellen und endet bei den Transaktionen.
Auch auf Drush-Ebene kann man die Datenbanken gezielt ansprechen:

  drush sqlc --database=nutzdaten_db

(Ohne den Parameter greift Drush immer auf 'default' zu).

Alternativ dazu könnte man mySQL (oder was auch immer) direkt ansprechen. Dabei handelt man sich aber mMn. noch mehr Probleme ein, da man dadurch keine einheitliche API mehr hat um die Datenbanken um zu schalten was speziell beim Transaktions-Handling wichtig wird.

Wenn es dir jedoch nur darum geht z.B. die D7-User oder einen einzelnen Content-Type in eine andere Datenbank zu verlegen, kannst Du das nach meinem Kentnisstand vergessen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Weitere Gründe sind Performance oder Anbindung von Fremddaten

Eingetragen von C_Logemann (912)
am 07.04.2017 - 10:57 Uhr
  • Im Rahmen von Performance-Strategien kann man z.B. einerseits Lese- und Schreib-Vorgänge aufteilen zwischen sogenannter "Provider"/"Master"-DB und gespiegelter/replizierter Daten in einer "Consumer"/"Slave"-DB.
  • Eine weiter Performance-Strategie kann sein, z.B. Caching-Tabellen in gesondertern DBs auszulagern, die dann vor allem auch eine andere Technologie haben können wie z.B. MongoDB.
  • Dann gibt es auch Möglichkeiten direkt auf Fremd-Daten in einer anderen DB zuzugreifen ohne den Umweg einer anderen API nehmen zu müssen. Das heißt ähnlich wie im oben beschrieben Beispiel einer Migration allerdings in einem dauerhaften zustand bei der eine andere Anwendung die zweite Datenbank verändert und Drupal auf diese Daten zugreifen kann. Um in einem solchen Fall, den ich schon hatte (beides MySQL DB), Drupal Änderungen in der andern DB "mitzuteilen" habe ich dann ein Konzept erstellt, bei dem per MySQL "Trigger" noch in der Drupal-DB eine Art "Änderungslog" beschrieben wird, der dann beim Cron-Lauf in Drupal der Such-Index welcher auf beiden Datenbanken zugreifen sollte sich dann selektiv erneuern konnte.
  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke fuer Euere Antworten -

Eingetragen von michaelkurt (47)
am 08.04.2017 - 07:25 Uhr

Danke fuer Euere Antworten - ich sehe schon, das ist diffiziler, als ich es mir gedacht habe. Werde das Theme zunaechst einmal abhaken muessen.
Nochmals vielen Dank!

  • 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 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 8 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 29 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