Mauvais Hibernate.Dialect pour MySQL 6 ?

cancel
Showing results for 
Search instead for 
Did you mean: 
jaxofun
Member II

Mauvais Hibernate.Dialect pour MySQL 6 ?

Bonjour.

Je viens de tenter l'installation d'Alfresco 3 avec MySQL Server 6.0.

J'ai obtenu, dans un premier temps une erreur lors de l'exécution du script AlfrescoSchemaCreate à cause des "type=InnoDB" dont l'utilisation est dépréciée et apparemment supprimée depuis la version 6.0 de MySQL :
16:08:14,839 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] Executing database script D:\Alfresco\AlfrescoLabs\tomcat\temp\Alfresco\AlfrescoSchemaCreate-org.hibernate.dialect.MySQLInnoDBDialect-105798221308386296.sql (Generated).
16:08:14,839 ERROR [org.alfresco.repo.domain.schema.SchemaBootstrap] Statement execution failed:
   SQL:     create table JBPM_ACTION (
        ID_ bigint not null auto_increment,
        class char(1) not null,
        NAME_ varchar(255),
        ISPROPAGATIONALLOWED_ bit,
        ACTIONEXPRESSION_ varchar(255),
        ISASYNC_ bit,
        REFERENCEDACTION_ bigint,
        ACTIONDELEGATION_ bigint,
        EVENT_ bigint,
        PROCESSDEFINITION_ bigint,
        TIMERNAME_ varchar(255),
        DUEDATE_ varchar(255),
        REPEAT_ varchar(255),
        TRANSITIONNAME_ varchar(255),
        TIMERACTION_ bigint,
        EXPRESSION_ text,
        EVENTINDEX_ integer,
        EXCEPTIONHANDLER_ bigint,
        EXCEPTIONHANDLERINDEX_ integer,
        primary key (ID_)
    ) type=InnoDB
   Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 22
   File: D:\Alfresco\AlfrescoLabs\tomcat\temp\Alfresco\AlfrescoSchemaCreate-org.hibernate.dialect.MySQLInnoDBDialect-105798221308386296.sql
   Line: 23
16:08:14,855 ERROR [org.alfresco.repo.domain.schema.SchemaBootstrap] Schema auto-update failed
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 22
Afin de palier à cette erreur, j'ai corrigé dans les fichiers custom-hibernate-dialect.properties et hibernate-cfg.properties, dans lesquels j'ai remplacé "hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect" par "hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect". Et j'ai renommé le répertoire "\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\activities\org.hibernate.dialect.MySQLInnoDBDialect" en MySQL5InnoDBDialect. Cela à permis de corriger le problème.

Cependant j'obtiens une nouvelle erreur à cause du second script AlfrescoSchemaUpdate qui tente de créer des index qui ont déjà été créés dans le premier script … ??? :
D:\Alfresco\AlfrescoLabs\tomcat\temp\Alfresco\AlfrescoSchemaCreate-org.hibernate.dialect.MySQL5InnoDBDialect-2662860700936994803.sql (Generated).
16:25:29,986 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] Executing database script D:\Alfresco\AlfrescoLabs\tomcat\temp\Alfresco\AlfrescoSchemaUpdate-org.hibernate.dialect.MySQL5InnoDBDialect-605448763934064023.sql (Copied from classpath:alfresco/dbscripts/create/2.2/org.hibernate.dialect.MySQL5InnoDBDialect/AlfrescoPostCreate-2.2-MappedFKIndexes.sql).
16:25:30,002 ERROR [org.alfresco.repo.domain.schema.SchemaBootstrap] Statement execution failed:
   SQL: CREATE INDEX fk_alf_ace_auth ON alf_access_control_entry (authority_id)
   Error: Duplicate key name 'fk_alf_ace_auth'
   File: D:\Alfresco\AlfrescoLabs\tomcat\temp\Alfresco\AlfrescoSchemaUpdate-org.hibernate.dialect.MySQL5InnoDBDialect-605448763934064023.sql
   Line: 12
16:25:30,002 ERROR [org.alfresco.repo.domain.schema.SchemaBootstrap] Schema auto-update failed
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate key name 'fk_alf_ace_auth'
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

Quelqu'un sait-il à quoi cela est due et comment le corriger ? Merci
2 Replies
rguinot
Customer

Re: Mauvais Hibernate.Dialect pour MySQL 6 ?

Bonjour,

Etes vous au courant que la version 6.0 de MySQL est une version alpha à ne surtout pas utiliser en production ?
Je pense que ce qui vous intéresse se passe ici : http://dev.mysql.com/downloads/mysql/5.1.html#downloads ou bien via le gestionnaire de paquets de votre distribution.
jaxofun
Member II

Re: Mauvais Hibernate.Dialect pour MySQL 6 ?

Bonjour.

Merci pour votre réponse. Effectivement MySQL 6 est en version alpha, et l'utilisation de MySQL 5.1 ne provoque pas cette erreur.

Cependant, mon utilisation d'Alfresco n'est pas actuellement/encore à but productif mais pédagogique. Ma question vise donc moins à pouvoir l'utiliser en production qu'à en comprendre les mécanismes internes, d'où mon intérêt à connaitre la raison de ce problème et le moyen de le corriger.