Erreurs d'injection SQL OpenConcerto v1.1

Un conseil pour l'installation? Un problème technique pour installer OpenConcerto?
Raphux
Messages : 8
Enregistré le : jeu. oct. 13, 2011 10:42 pm

sam. oct. 15, 2011 4:35 pm

Hello,

je rencontre quelques erreurs lors de l'installation de la version multiposte sur postgres.

Tout d'abord, voici comment j'ai préparé le socle :

Code : Tout sélectionner

briareos2 ~ # su - postgres
postgres@briareos2 ~ $ createuser -D -S -R openconcerto
postgres@briareos2 ~ $ createdb -O openconcerto  "OpenConcerto"
postgres@briareos2 ~ $ md5sum /home/raphux/utils/OpenConcerto/openconcerto.sql
3821b38a554ab4cf90a97ad8edc973ad  /home/raphux/utils/OpenConcerto/openconcerto.sql
postgres@briareos2 ~ $
Si j'injecte le fichier tel quel, voici ce que ça donne :

Code : Tout sélectionner

postgres@briareos2 ~ $ psql -h localhost -U openconcerto -f /home/raphux/utils/OpenConcerto/openconcerto.sql OpenConcerto
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:3: ERROR:  syntax error at or near ""
LINE 1: CREATE SCHEMA "Common";
        ^
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:6: ERROR:  schema "Common" does not exist
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:14: ERROR:  schema "Common" does not exist
CREATE SCHEMA
ALTER SCHEMA
COMMENT
CREATE SCHEMA
ALTER SCHEMA
CREATE SCHEMA
ALTER SCHEMA
SET
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:66: ERROR:  relation "ordret_generator" does not exist
LINE 3:     AS $$ UPDATE ordreT_generator set tmpVal = currentVal, c...
                         ^
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:69: ERROR:  function Default.next_ordret() does not exist
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:79: ERROR:  relation "ordret_generator" does not exist
LINE 3:     AS $$ update ordreT_generator set currentVal = minVal ;s...
                         ^
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:82: ERROR:  function Default.reset_ordret() does not exist
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:84: ERROR:  invalid value for parameter "search_path": ""Common", pg_catalog"
DETAIL:  schema "Common" does not exist
SET
SET
CREATE TABLE
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:105: ERROR:  schema "Common" does not exist
CREATE SEQUENCE
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:121: ERROR:  schema "Common" does not exist
ALTER SEQUENCE
 setval 
--------
      1
(1 row)

[…]
Le message se répète à longueur de temps parce qu'il y a eu un problème au début de l'injection.

En fait, il y a un caractère invisible foireux au début du fichier SQL :

Code : Tout sélectionner

postgres@briareos2 ~ $ cat -e /home/raphux/utils/OpenConcerto/openconcerto.sql | head   
M-oM-;M-?CREATE SCHEMA "Common";$
$
$
ALTER SCHEMA "Common" OWNER TO openconcerto;$
$
--$
-- TOC entry 12263 (class 0 OID 0)$
-- Dependencies: 6$
-- Name: SCHEMA "Common"; Type: COMMENT; Schema: -; Owner: openconcerto$
--$
postgres@briareos2 ~ $
C'est à cause de ça que postgres beugle lors de l'injection.

Si je corrige le fichier, voici le diff (évidement, le changement n'est pas visible, mais est bien détectable) :

Code : Tout sélectionner

raphux@briareos2 ~/utils/OpenConcerto $ diff -Nau openconcerto.sql-bad openconcerto.sql
--- openconcerto.sql-bad	2011-05-26 18:31:16.000000000 +0200
+++ openconcerto.sql	2011-10-15 18:01:36.000000000 +0200
@@ -1,4 +1,4 @@
-CREATE SCHEMA "Common";
+CREATE SCHEMA "Common";
 
 
 ALTER SCHEMA "Common" OWNER TO openconcerto;
raphux@briareos2 ~/utils/OpenConcerto $ 
Mais plus visible en utilisant cat -e comme précédemment :

Code : Tout sélectionner

raphux@briareos2 ~/utils/OpenConcerto $ cat -e openconcerto.sql | head
CREATE SCHEMA "Common";$
$
$
ALTER SCHEMA "Common" OWNER TO openconcerto;$
$
--$
-- TOC entry 12263 (class 0 OID 0)$
-- Dependencies: 6$
-- Name: SCHEMA "Common"; Type: COMMENT; Schema: -; Owner: openconcerto$
--$
raphux@briareos2 ~/utils/OpenConcerto $
C'est tout de suite beaucoup mieux, mais il reste ce problème de «relation» :

Code : Tout sélectionner

postgres@briareos2 ~ $ dropdb "OpenConcerto" && dropuser openconcerto
postgres@briareos2 ~ $ createuser -D -S -R openconcerto && createdb -O openconcerto  "OpenConcerto"
postgres@briareos2 ~ $ psql -h localhost -U openconcerto -f /home/raphux/utils/OpenConcerto/openconcerto.sql OpenConcerto     
CREATE SCHEMA
ALTER SCHEMA
COMMENT
CREATE SCHEMA
ALTER SCHEMA
COMMENT
CREATE SCHEMA
ALTER SCHEMA
CREATE SCHEMA
ALTER SCHEMA
SET
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:64: ERROR:  relation "ordret_generator" does not exist
LINE 3:     AS $$ UPDATE ordreT_generator set tmpVal = currentVal, c...
                         ^
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:67: ERROR:  function Default.next_ordret() does not exist
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:77: ERROR:  relation "ordret_generator" does not exist
LINE 3:     AS $$ update ordreT_generator set currentVal = minVal ;s...
                         ^
psql:/home/raphux/utils/OpenConcerto/openconcerto.sql:80: ERROR:  function Default.reset_ordret() does not exist
SET
SET
SET
CREATE TABLE
ALTER TABLE
[…]
Mes compétences s'arrêtent là, je ne connais pas assez postgres pour corriger ce problème de «relation».

Pour info, j'ai le même résultat en exécutant le script en tant qu'utilisateur postgres…

Bonne journée,
Raphux
Messages : 8
Enregistré le : jeu. oct. 13, 2011 10:42 pm

sam. oct. 15, 2011 5:10 pm

Voici la stacktrace quand je lance openconcerto après l'installation décrite ci-dessus :

Code : Tout sélectionner

Erreur de connexion à la base de données

ERROR: null value in column "UNDEFINED_ID" violates not-null constraint
org.openconcerto.utils.ExceptionHandler: Erreur de connexion à la base de données
	at org.openconcerto.utils.ExceptionHandler.die(ExceptionHandler.java:87)
	at org.openconcerto.erp.config.Gestion.main(Gestion.java:214)
Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "UNDEFINED_ID" violates not-null constraint
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:366)
	at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
	at org.openconcerto.sql.model.SQLRowValues$9.handle(SQLRowValues.java:1568)
	at org.openconcerto.sql.model.SQLRowValues$9.handle(SQLRowValues.java:1)
	at org.openconcerto.sql.utils.SQLUtils$2.handle(SQLUtils.java:85)
	at org.openconcerto.sql.model.ConnectionHandler.compute(ConnectionHandler.java:55)
	at org.openconcerto.sql.model.SQLDataSource.useConnection(SQLDataSource.java:657)
	at org.openconcerto.sql.utils.SQLUtils.executeAtomic(SQLUtils.java:66)
	at org.openconcerto.sql.model.SQLRowValues.insert(SQLRowValues.java:1547)
	at org.openconcerto.sql.model.SQLRowValues.insertCount(SQLRowValues.java:1537)
	at org.openconcerto.sql.model.SQLTable.setUndefID(SQLTable.java:140)
	at org.openconcerto.sql.preferences.SQLPreferences$1.create(SQLPreferences.java:84)
	at org.openconcerto.sql.utils.SQLUtils$1.handle(SQLUtils.java:49)
	at org.openconcerto.sql.utils.SQLUtils$2.handle(SQLUtils.java:85)
	at org.openconcerto.sql.model.ConnectionHandler.compute(ConnectionHandler.java:55)
	at org.openconcerto.sql.model.SQLDataSource.useConnection(SQLDataSource.java:657)
	at org.openconcerto.sql.utils.SQLUtils.executeAtomic(SQLUtils.java:66)
	at org.openconcerto.sql.utils.SQLUtils.executeAtomic(SQLUtils.java:46)
	at org.openconcerto.sql.preferences.SQLPreferences.getPrefTable(SQLPreferences.java:59)
	at org.openconcerto.erp.config.Gestion.main(Gestion.java:211)
L'outil de configuration ne signal aucun problème («Connexion réussie sur la base OpenConcerto»).
Avatar du membre
guillaume
Messages : 2434
Enregistré le : ven. févr. 11, 2011 7:15 pm

sam. oct. 15, 2011 6:51 pm

Bonsoir,

Pas vu de problème avec ce dump ici... vous utilisez PostgreSQL 8.4 ?
Le logiciel est capable de mettre à jour depuis les anciens dumps.
On ne va pas tarder à fournir un script pour l'install automatique.

Cordialement,
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
Raphux
Messages : 8
Enregistré le : jeu. oct. 13, 2011 10:42 pm

sam. oct. 15, 2011 7:14 pm

Salut Guillaume,

nope, postgres9.1.

Il y a vraiment un caractère invisible et néfaste dans le SQL fournit sur la page de téléchargement :

Code : Tout sélectionner

raphux@briareos2 ~ $ cd /tmp/
raphux@briareos2 /tmp $ wget http://www.openconcerto.org/fr/telechargement/OpenConcerto-sql.zip--2011-10-15 20:58:09--  http://www.openconcerto.org/fr/telechargement/OpenConcerto-sql.zip
Résolution de www.openconcerto.org... 213.186.33.17
Connexion vers www.openconcerto.org|213.186.33.17|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 605858 (592K) [application/zip]
Sauvegarde en : «OpenConcerto-sql.zip»

100%[=============================================================================>] 605 858     2,02M/s   ds 0,3s    

2011-10-15 20:58:09 (2,02 MB/s) - «OpenConcerto-sql.zip» sauvegardé [605858/605858]

md5sum du zip téléchargé (qu'on soit sûr de parler du même):

Code : Tout sélectionner

raphux@briareos2 /tmp $ md5sum OpenConcerto-sql.zip 
ea730b26d128e624c15d96702f49aaf2  OpenConcerto-sql.zip
Je le décompresse :

Code : Tout sélectionner

raphux@briareos2 /tmp $ unzip OpenConcerto-sql.zip 
Archive:  OpenConcerto-sql.zip
  inflating: openconcerto.sql 
Re- checksum pour le SQL décompressé :

Code : Tout sélectionner

raphux@briareos2 /tmp $ md5sum openconcerto.sql 
3821b38a554ab4cf90a97ad8edc973ad  openconcerto.sql
Et là, vérification du caractère invisible :

Code : Tout sélectionner

raphux@briareos2 /tmp $ cat -e openconcerto.sql | head
M-oM-;M-?CREATE SCHEMA "Common";$
$
$
ALTER SCHEMA "Common" OWNER TO openconcerto;$
$
--$
-- TOC entry 12263 (class 0 OID 0)$
-- Dependencies: 6$
-- Name: SCHEMA "Common"; Type: COMMENT; Schema: -; Owner: openconcerto$
--$
raphux@briareos2 /tmp $ 
Ce M-oM-;M-? avant CREATE SCHEMA "Common"; n'est pas normal. Tu devrais constater le même comportement, même avec pg 8.4 (je ferai un test avec une telle version si tu veux, mais je doute que cela ne change quoi que ce soit).

Je ne crois pas avoir fait d'erreur dans le processus de préparation et d'injection, j'ai été regardé dans les script shell que tu as proposé pour des versions beta (http://www.openconcerto.org/fr/beta5/install-1.1b5.sh) pour être sûr que je n'oubliais pas quelque chose.

Si ce n'était pas clair dans le premier post, je pars d'une fresh install (je drop la base entre chaque tentative d'installation pour être sûr de repartir d'un socle vierge).

Bon week!
Avatar du membre
guillaume
Messages : 2434
Enregistré le : ven. févr. 11, 2011 7:15 pm

sam. oct. 15, 2011 7:24 pm

Ok, tout va bien... :ugeek:
C'est juste le lien sur le site qui pointe sur le dump du 1.0...

Le bon lien est http://openconcerto.org/fr/telechargeme ... .1.sql.zip
Le temps de prendre la main sur un PC du boulot et je corrige le site.

Merci pour le feedback.
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
Raphux
Messages : 8
Enregistré le : jeu. oct. 13, 2011 10:42 pm

sam. oct. 15, 2011 8:00 pm

Yes! C'est beaucoup mieux. :)

Merci pour ta forte réactivité!

À bientôt,
xantof
Messages : 504
Enregistré le : dim. juil. 10, 2011 2:33 pm

dim. oct. 16, 2011 11:58 am

Bonjour à tous,

J'ai une erreur avec le nouveau dump du lien ci-dessus :
[Le bon lien est http://openconcerto.org/fr/telechargeme ... .1.sql.zip]

[ERROR ] 24911.0: syntax error, unexpected INTEGER VALUE

J'ai installé PostGreSql 9.1.
Les anciens dumps s'effectuent sans erreurs.

:?:

Stephan
Lubuntu 16.04 LTS au travail. Ubuntu 15.04 à la maison. 13 ans sous logiciel propriétaire. OC depuis 2012. Petit Commerce
Comment poser une question sur un forum : http://www.linux-france.org/article/the ... ns-fr.html
Raphux
Messages : 8
Enregistré le : jeu. oct. 13, 2011 10:42 pm

dim. oct. 16, 2011 12:11 pm

Tu peux détailler ta procédure d'injection STP?
xantof
Messages : 504
Enregistré le : dim. juil. 10, 2011 2:33 pm

dim. oct. 16, 2011 12:29 pm

Hello

C'est sympa d'être sur le coup!
  • pgadmin
    Creation Nouvelle base OpenConcerto avec tous les droits
    Bouton SQL
    Ouverture du fichier dump
    Bouton "Executer PgScript"
Ca s'arrête à la ligne indiquée qui est :

COPY "ACCES_SOCIETE" ("ID", "ID_USER_COMMON", "ID_SOCIETE_COMMON", "ARCHIVE", "ORDRE") FROM stdin;
1 1 1 0 0.00000000
\.

C'est tout. Je ne m'y connait pas en SQL pour debugger.
Je rappelle que mes anciens dumps fonctionnent!

Stephan
Lubuntu 16.04 LTS au travail. Ubuntu 15.04 à la maison. 13 ans sous logiciel propriétaire. OC depuis 2012. Petit Commerce
Comment poser une question sur un forum : http://www.linux-france.org/article/the ... ns-fr.html
Avatar du membre
guillaume
Messages : 2434
Enregistré le : ven. févr. 11, 2011 7:15 pm

dim. oct. 16, 2011 1:16 pm

L'installation sous Linux (Ubuntu 11.04) est testée avec:

Code : Tout sélectionner

wget http://openconcerto.org/fr/telechargement/install-1.1.sh
bash install-1.1.sh
L'injection SQL est réalisée avec la commande: psql OpenConcerto < openconcerto-1.1.sql

Le dump de la 1.1 est différent des anciens, nous utilisons l'insertion des données par bloc
ce qui réduit considérablement le temps d'installation (qui est désormais de moins de 15s sur un serveur standard).

Je ne suis pas sûr que toutes les versions de pgAdmin soient capables de prendre ce SQL en entrée.
Préférez donc la ligne de commande.

[PS: La version 1.1 est capable de mettre à jour les anciennes versions]
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
Répondre