Comment implémenter une application devant plusieurs bases de données

Edit me

Exemple d’application multi-base :

Application multi-base

Application multi-base

Création des vhost

Résultat souhaité

  • BDD : base1
  • URLs :
    • https://base1.preprod.voozanoo.net/project1
    • https://base1.preprod.voozanoo.net/project2

  • BDD : base2
  • URLs :
    • https://base2.preprod.voozanoo.net/project1
    • https://base2.preprod.voozanoo.net/project2

Les commandes

(Sur un serveur de préproduction)

sudo vhost mk base1.preprod.voozanoo.net 10.1.16.125 wildcard.preprod.voozanoo.net
sudo vhost setvoo4 base1.preprod.voozanoo.net /space/www/apps/{Application}/{Application}_{Version}/public/ 2.26 staging-base1

sudo vhost mk base2.preprod.voozanoo.net 10.1.16.125 wildcard.preprod.voozanoo.net
sudo vhost setvoo4 base2.preprod.voozanoo.net /space/www/apps/{Application}/{Application}_{Version}/public/ 2.26 staging-base2
sudo vhost reload

Le fichier “application.ini”

[staging-base1 : staging]

resources.db.params.username = "base1"
resources.db.params.password = "{Mdp à mettre directement sur le serveur}"
resources.db.params.dbname = "base1"

voozanoo.host = "base1.preprod.voozanoo.net"

voozanoo.log.conf.stream.writerParams.stream = "/space/log/base1.preprod.voozanoo.net/php/voozanoo.log"

[staging-base2 : staging]

resources.db.params.username = "base2"
resources.db.params.password = "{Mdp à mettre directement sur le serveur}"
resources.db.params.dbname = "base2"

voozanoo.host = "base2.preprod.voozanoo.net"

voozanoo.log.conf.stream.writerParams.stream = "/space/log/base2.preprod.voozanoo.net/php/voozanoo.log"

Le fichier “voo4_cli.php”

L’idéal est de récupérer celui de l’application ECDC : voo4_cli.php

Le noyau Voozanoo4 a été modifié pour que chaque appel CLI passe le paramètre “env={environnement_de_l’appelant}”.

Ce paramètre est ensuite récupéré par ce nouveau voo4_cli.php pour conserver le contexte.

ATTENTION

Les noms des sections du .ini sont doivent absolument suivre la règle suivante :

[{Section connue du voozanoo.ini}-{Caractère alphanumérique + “_”}]

  • Il ne faudra pas oublier de créer les fichiers de logs :
sudo -u www-data touch /space/log/base1.preprod.voozanoo.net/php/voozanoo.log
sudo -u www-data touch /space/log/base1.preprod.voozanoo.net/php/errors.log
sudo -u www-data touch /space/log/base2.preprod.voozanoo.net/php/voozanoo.log
sudo -u www-data touch /space/log/base2.preprod.voozanoo.net/php/errors.log
  • Pour le déploiement, pour le moment il faut utiliser les commandes suivantes pour ne pas perdre les modifications du fichier .ini faites sur le serveur :
sudo -u www-data cp /space/www/configuration/voozanoo4/configuration/{Application}_{Version}.ini /space/www/configuration/voozanoo4/configuration/{Application}_{Version}.ini_backup
sudo ecdep up epi-{Application}-{Version}
sudo -u www-data cp /space/www/configuration/voozanoo4/configuration/{Application}_{Version}.ini_backup /space/www/configuration/voozanoo4/configuration/{Application}_{Version}.ini
  • Une chose qui ne change pas, mais ça fait pas de mal de le rappeler. A faire sur prefnt2 et profnt2 :
sudo etchosts_up action