[PKGBUILD] Bonnes pratiques de packaging d'apps avec BDD
Publié : mar. 21 mai 2013, 21:48
Hello,
Je suis en train de bosser sur le packaging d'application java qui nécessitent l'utilisation d'une base de données, qu'il s'agisse de mysql/postgres/... au choix de l'utilisateur.
La question que je me pose c'est de savoir quelle est la bonne pratique concernant le packaging, et plus précisément l'initialisation de la base de données. En effet, il est nécessaire de renseigner l'utilisateur et mot de passe à utiliser pour créer la base nécessaire.
Plusieurs solutions me viennent à l'esprit :
- Installer de base avec une BDD mémoire (type hsql/h2) et laisser l'utilisateur changer de base le cas échéant. (solution que j'ai proposé pour l'instant, ex : XWiki)
- En post-install, demander à l'utilisateur les informations nécessaires et faire le travail à sa place.
La première solution me paraît plus archlinux-like et m'apparaît plus simple à automatiser pour du déploiement massif (puppet/chef). Mais nécessaite une bonne connaissance de l'outil à configurer.
La seconde solution est plus simple pour l'utilisateur mais m'apparaît moins industrielle.
Qu'en pensez vous ?
Je suis en train de bosser sur le packaging d'application java qui nécessitent l'utilisation d'une base de données, qu'il s'agisse de mysql/postgres/... au choix de l'utilisateur.
La question que je me pose c'est de savoir quelle est la bonne pratique concernant le packaging, et plus précisément l'initialisation de la base de données. En effet, il est nécessaire de renseigner l'utilisateur et mot de passe à utiliser pour créer la base nécessaire.
Plusieurs solutions me viennent à l'esprit :
- Installer de base avec une BDD mémoire (type hsql/h2) et laisser l'utilisateur changer de base le cas échéant. (solution que j'ai proposé pour l'instant, ex : XWiki)
- En post-install, demander à l'utilisateur les informations nécessaires et faire le travail à sa place.
La première solution me paraît plus archlinux-like et m'apparaît plus simple à automatiser pour du déploiement massif (puppet/chef). Mais nécessaite une bonne connaissance de l'outil à configurer.
La seconde solution est plus simple pour l'utilisateur mais m'apparaît moins industrielle.
Qu'en pensez vous ?