it-swarm.com.de

Verwenden separater Datenbanken für jede Komponente

Mein Kunde ist ein Data Center Architect.

Aufgrund seiner Erfahrung mit seiner Arbeit (viele Kunden sind zu ihm gekommen, weil sie in der Vergangenheit einen großen Datenverlust erlitten haben) möchte er, dass ich seine Joomla-Site so konfiguriere, dass jede Komponente (JomSocial, EasyDiscuss, JomDirectory) ihre Daten in einem Ordner speichert separate Datenbank.

Ich konnte keine Informationen über jemanden finden, der jemals so etwas getan hat.

Ich denke, es könnte die Seite erheblich verlangsamen, aber er würde es gerne versuchen, wenn es möglich ist.

Ist das möglich?

Ist das eine gute Idee?

4
nico

Das Speichern von Daten für jede Komponente in einer anderen Datenbank ist eine äußerst schlechte Idee. Ja, mit Joomla ist ist möglich, jedoch sollten Sie sich in eine große Menge von Kerndateien hacken, Datenbankabfragen ändern und so weiter. Wenn Sie sich für ein Upgrade einer der Erweiterungen entscheiden, werden alle Ihre Änderungen überschrieben. Das ist also ein Nein.

Stattdessen würde ich vorschlagen, einen Cron-Job auszuführen, der ein Skript alle X Stunden oder pro Tag ausführt. Dieses Skript erstellt einfach eine Sicherungskopie aller Datenbanktabellen, die zur Erweiterung gehören. Sie können entweder ein separates Skript pro Erweiterung haben oder sie zu einem kombinieren. Ich würde jedoch separate Skripts empfehlen, um die Wartung zu vereinfachen.

Sobald Sie eine Sicherungskopie Ihrer Tabellen erstellt haben, können Sie diese in die gewünschten Datenbanken importieren.

8
Lodder

Wenn Sie eine Komponente schreiben, können Sie die Daten in einer anderen Datenbank oder einem anderen Host speichern oder ein anderes Tabellenpräfix oder einen anderen Treiber wie folgt verwenden:

$options = array(
    'driver' => 'mysqli',
    'Host' => 'localhost2',
    'user' => 'myuser2',
    'password' => 'mypassword2',
    'database' => 'mydatabase2',
    'prefix' => 'joomlaprefix2',
);

$db = JDatabase::getInstance($options);

Sie können auch eine Drittanbieter-Komponente ändern, wenn Sie dies zulassen. Wenn Sie jedoch die Komponente aktualisieren, wird alles ausgeblendet.

2
Farahmand