Erreur création client Version: 5.1.0

Bonjour,

Depuis plusieurs jours, je ne peux plus créer de clients/Fournisseurs/Prospect, j’ai le message d’erreur suivant (tout fontionné parfaitement bien avant):

org.hibernate.exception.ConstraintViolationException: could not execute statement

voici la trace:
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
at com.axelor.apps.account.db.repo.PartnerAccountRepository.save(PartnerAccountRepository.java:55)
at com.axelor.apps.account.db.repo.PartnerAccountRepository.save(PartnerAccountRepository.java:31)
at com.axelor.rpc.Resource.save(Resource.java:884)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:55)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:70)
at com.axelor.web.service.RestService.save(RestService.java:158)
at com.axelor.rpc.RequestFilter.invoke(RequestFilter.java:55)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:64)
at sun.reflect.GeneratedMethodAccessor516.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:67)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at com.axelor.auth.AuthFilter.doFilterInternal(AuthFilter.java:78)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:93)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:91)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:67)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:132)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

Merci d’avance

Bonjour,

Etes-vous sur de n’avoir effectué aucune mise à jour car il est plus qu’étrange qu’un système qui fonctionnait avant ne fonctionne plus désormais.

L’erreur indique une violation contrainte de contrainte en base de données comme si il manquait un champs (eg; Address, etc).

Bonjour,
Vous pouvez tenter de régénérer les vues dans la partie administration.

Oui je suis certain…Et la je suis complètement bloqué, j’ai essayé de régénérer les vues mais sans succès…

Il faut faire un diff de la base

  1. Lancer axelor sur une nouvelle base
  2. Avec le logiciel dbeaver vous pouvez faire une comparaison des deux bases pour voir d’où vient le problème.

La procédure est un peu technique, je peux vous faire un descriptif détaillé des opérations plus tard si vous avez besoin.

Si vous avez des éléments, je veux bien effectivement…

Merci bcp! :wink:

Bonsoir,
J’utilise Axelor sous mac, si vous l’utilisez sous Windows via le bundle comme ici, vous n’avez peut-être pas les outils pour faire le travail.

https://docs.axelor.com/abs/5.0/install/aio.html

J’ai essayé ce vous faire un petit tuto pour les manipulations, j’espère que ce sera assez clair…

1. Créer un base vide

Il faut installer DBeaver…
https://dbeaver.io

Et créer une connexion vers la le serveur PostgresSQL utilisé par le bundle.

Les paramètres de connexion qui sont dans le fichier application.properties dans le répertoire des données (Data directory)

Dans le fichier par défaut il y a les paramètres de connexion suivants:

db.default.url = jdbc:postgresql://localhost:5433/axelor
db.default.user = axelor
db.default.password = s3cr@t

Créer un nouvelle connection à Postgres dans DBeaver

Utiliser

Host: localhost
Database: axelor
User: axelor
Password: s3cr@t

Vous pouvez accéder directement à la base de donnée axelor dans DBeaver

Vous pouvez créer une nouvelle base de données vide, par exemple avec le nom axelor-test.

Général → Connection → PostgreSQL

Puis

(click droit) → create → database

Database name: axelor-test
Owner: axelor
  1. Stopper le serveur axelor

Modifier le fichier application.properties (celui du point 1) et configurer cette base de données pour Axelor.

Utiliser

db.default.url = jdbc:postgresql://localhost:5432/axelor-test

  1. Démarrer le serveur Axelor

Le serveur va créer toutes les tables pour la nouvelle base données…

  1. Comparer les deux bases de données

Dans DBeaver sélectionner les deux schémas public des bases de données puis
click droit → comparer. (ici axelor-516 et axelor-test)

Choisir de voir seulement les différences.

Le navigateur va s’ouvrir et les différences seront en rouge dans le rapport …

Merci pour votre topic, peut-être serait-il interressant que son titre soit plus explicite pour permettre à la communauté de l’identifier de manière plus précise :slight_smile: