Documentation:Choix de la base de données
Un article de AlfrescoWiki.
Sommaire |
[modifier] Principe
Alfresco utilise Hibernate pour faire le lien avec la base de données. Hibernate supportant plusieurs systèmes de base de données, il est donc possible d'utiliser Alfresco avec l'un de ces systèmes.
Historiquement, Alfresco est configuré par défaut pour l'utilisation de MySQL. Cette configuration est celle trouvée dans alfresco.war. Depuis la version 1.4, la configuration par défaut de la base de données est située dans le dossier tomcat/shared/classes/alfresco/extension/, elle utilise HSQL. La base de données HSQL est une base de données chargée en mémoire, elle est pratique pour effectuer des tests ou des démos car elle ne nécessite pas l'installation d'un serveur de base de données. Cependant, il est fortement déconseillé de l'utiliser en production !
Alfresco à principalement besoin de 4 informations pour utiliser une base de données :
- le driver pour piloter la base de données
- le couple login/password
- une chaine de connexion
- le dialect Hibernate
Il faut également récupérer le driver associé à la base de données. Un driver est un fichier .jar qu'il faut placer dans le répertoire tomcat/common/lib/.
[modifier] Configuration
La configuration se fera donc dans le dossier tomcat/shared/classes/alfresco/extension/. Dans une installation standard, vous trouverz très certainement les 3 fichiers suivants :
- custom-db-and-data-context.xml
- custom-db-connection.properties
- custom-hibernate-dialect.properties
Ce sont ces 3 fichiers qui configurent Alfresco pour utiliser HSQL. Il faut supprimer ces 3 fichiers, nous allons en créer de nouveaux plus génériques.
[modifier] custom-repository-context.xml
Copier le fichier custom-repository-context.xml.sample en custom-repository-context.xml. Il n'y a pas de modification à apporter à ce fichier. Ce fichier fait référence à 2 autres fichiers que nous allons créer maintenant.
[modifier] custom-hibernate-dialect.properties
Copier le fichier custom-hibernate-dialect.properties.sample en custom-hibernate-dialect.properties. Ce fichier va indiquer à Alfresco le dialect utilisé par Hibernate pour dialoguer avec la base de données. Il suffit d'éditer ce fichier et de décommenter la ligne correspondant à la base de données utilisées.
[modifier] custom-repository.properties
Copier le fichier custom-repository.properties.sample en custom-repository.properties. Ce fichier va définir les 3 informations restantes (le driver, le couple login/password et la chaine de connexion).
db.username # login pour se connecter à la base de données db.password # mot de passe associé au login db.driver # classe Java du driver db.url # la chaine de connexion
[modifier] Préparation de la base de données
Avant de démarrer Alfresco, il est nécessaire de préparer la base de données. Alfresco a besoin uniquement d'une base de données vide (les tables seront créées lors du bootstrap) et d'un compte pour y accéder. Le compte doit avoir les privilèges suffisants pour créer des tables et des indexes.
[modifier] Exemples
Ces exemples montrent comment configurer Alfresco avec plusieurs bases de données (MySQL, PostgreSQL et Oracle).
- nom de la base de données : alfrescoprod
- nom d'hôte du serveur : dbserver
- login/password : alfresco/pwd
[modifier] MySQL
- driver disponible ici : http://dev.mysql.com/downloads/connector/j/5.0.html
- custom-hibernate-dialect.properties :
# # MySQL dialect # hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
- custom-repository.properties
# # MySQL connection # db.username=alfresco db.password=pwd db.driver=org.gjt.mm.mysql.Driver db.url=jdbc:mysql://dbserver/alfrescoprod
- préparation de la base de données
# mysql -u root -p mysql> create database alfrescoprod; mysql> grant all on alfrescoprod.* to 'alfresco'@'%' identified by 'pwd' with grant option;
[modifier] PostgreSQL
- driver disponible ici : http://jdbc.postgresql.org/download.html
- custom-hibernate-dialect.properties :
# # PostgreSQL dialect # hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
- custom-repository.properties
# # PostgreSQL connection # db.username=alfresco db.password=pwd db.driver=org.postgresql.Driver db.url=jdbc:postgresql://dbserver:5432/alfrescoprod
- préparation de la base de données
# su - postgres $ psql template1 create database alfrescoprod create user alfresco with password 'pwd' grant all on database alfrescoprod to alfresco \q
[modifier] Oracle
- driver disponible ici : sur le site d'Oracle ou auprès de votre DBA
- custom-hibernate-dialect.properties :
# # Oracle dialect # hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
- custom-repository.properties
# # Oracle connection # db.username=alfresco db.password=pwd db.driver=oracle.jdbc.OracleDriver db.url=jdbc:oracle:thin:@dbserver:1521:alfrescoprod
- préparation de la base de données
Voir avec votre DBA également :-)
