Bonjour
Je cherche à patcher
Jahia 4.0 en 4.1 à l'aide du patch standard.
J'ai l'erreur
suivante :
Execute update :
-----------------
Apply class PatchSlide2b ...
PatchSlide2 initialized.
Load script : WEB-INF\var\db\mysql.script
java.sql.SQLException: Duplicate entry '150475-Guide JAHIA.doc-150474' for key 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2847)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1531)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1347)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:958)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1957)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1880)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1741)
at org.jahia.update.core.PatchSlide2b.execute(PatchSlide2b.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jahia.update.JahiaUpdate.executeUpdate(JahiaUpdate.java:557)
at org.jahia.update.JahiaUpdate.main(JahiaUpdate.java:115)
at org.jahia.update.JahiaUpdate.execute(JahiaUpdate.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jahia.update.JahiaUpdateChain.executeUpdate(JahiaUpdateChain.java:341)
at org.jahia.update.JahiaUpdateChain.main(JahiaUpdateChain.java:76)
PatchSlide2 initialized.
Load script : WEB-INF\var\db\mysql.script
java.sql.SQLException: Duplicate entry '150475-Guide JAHIA.doc-150474' for key 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2847)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1531)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1347)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:958)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1957)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1880)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1741)
at org.jahia.update.core.PatchSlide2b.execute(PatchSlide2b.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jahia.update.JahiaUpdate.executeUpdate(JahiaUpdate.java:557)
at org.jahia.update.JahiaUpdate.main(JahiaUpdate.java:115)
at org.jahia.update.JahiaUpdate.execute(JahiaUpdate.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jahia.update.JahiaUpdateChain.executeUpdate(JahiaUpdateChain.java:341)
at org.jahia.update.JahiaUpdateChain.main(JahiaUpdateChain.java:76)
Cela vient du fait
qu'il y a des entrées dans la base de données qui n'ont pas de correspondance de
fichiers
"\tomcat\webapps\jahia\WEB-INF\var\content\slide"
Au passage c'est
aussi ça qui empeche d'acceder au répertoire en tant que dossier
web.
Du coup j'ai
supprimé les entrées dans la table "jahia_sl2_uri" qui n'avaient pas de correspondance
de fichier. Et j'ai supprimé les fichiers qui n'avaient pas de correspondance
dans la base. J'ai supprimé aussi les doublons de fichier dans cette même
table.
Le patch s'applique
donc maintenant correctement.
Ma question est donc
la suivante :
- Existe t'il un outil automatique pour faire cette manipulation ?
- Est ce que le mode opératoire est correct ou dois je purger des lignes à d'autres endroits dans les tables ?
- Comment ces erreures en base apparaissent t elles ?
en vous remerciant
pour vos réponses.
Nicolas
Nicolas LAFAURY
Smile- Motoriste
Internet
01-41-40-11-05
