web-dev-qa-db-fra.com

Utilisation de bases de données distinctes pour chaque composant

Mon client est un architecte de centre de données.

En raison de son expérience dans son travail (beaucoup de clients le consultent car ils ont beaucoup perdu de données par le passé), il souhaite que je configure son site Joomla de sorte que chaque composant (JomSocial, EasyDiscuss, JomDirectory) stocke ses données dans une base de données séparée.

Je n'ai pas été en mesure de trouver d'informations sur des personnes ayant déjà commis un tel acte.

Je pense que cela pourrait ralentir considérablement le site, mais il aimerait l'essayer si cela est possible.

Est-ce possible?

Est-ce une bonne idée?

4
nico

Stocker des données pour chaque composant dans une base de données différente est une très mauvaise idée. Oui, c’est est possible avec Joomla, cependant, vous devriez avoir à pirater une grande quantité de fichiers de base, à modifier les requêtes de base de données, etc. Si vous décidiez de mettre à niveau l'une des extensions, toutes vos modifications seraient annulées. Donc c'est un non-aller.

Au lieu de cela, je suggérerais d'exécuter un travail cron qui exécute un script toutes les X heures ou par jour. Ce script effectuerait simplement une sauvegarde de toutes les tables de base de données appartenant à l'extension. Vous pouvez avoir un script séparé par extension ou les combiner en un. Cependant, je recommanderais des scripts distincts, ce qui facilitera sa maintenance.

Une fois que vous avez une sauvegarde de vos tables, vous pouvez les importer dans les bases de données de votre choix.

8
Lodder

Si vous écrivez un composant, vous pouvez stocker les données dans une autre base de données ou un autre hôte ou utiliser un autre préfixe de table ou un autre pilote, comme ceci:

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

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

Vous pouvez également modifier un composant tiers si vous y êtes autorisé, mais lorsque vous le mettez à jour, tout disparaît.

2
Farahmand