On Wed, Mar 02, 2005 at 09:02:18PM +0100, Eldy wrote:
Sinon, il y a le problème du type "double" qui devrait être remplacé par
"money".
(au passage, je suis surpris que le type "double" soit utilisé pour gérer
des valeurs monétaires. Ca peut facilement entraîner des erreurs de
précision. Un "decimal(10,2)" aurait été moins choquant...)
Ce type est en effet plus recommandé (disons decimal(10,5)). Pour
l'instant, ce point n'est pas trop génant, lorsque les pb d'arrondis se
manifesteront (ce sera le cas quand Dolibarr sera multidevises, on y est
pas encore), on pourra toujours corriger. Les 2 types n'étant pas
incompatbiles. En attendant, on va laisser comme ça. Pour ce qui est de
l'utilisation du type money, il est trop propre à pgsql. Cela
provoquerait d'autres problèmes de comptabilité de code à terme. Je
pense qu'on peut s'en sortir avec ce type (et à terme le decimal).
Euh, ça ne va pas être possible: le type "double" est spécifique à MySQL.
Je me suis mal exprimé, je proposais "money" uniquement pour la partie
Postgres.
Dans l'histoire, le seul type sql standard est "decimal".
Je suis preneur du prochain message d'erreur...
Il commence à y en avoir suffisamment peu pour que je mette toute la
liste:
psql -U pgsql -h wapiti dolibarr < llx_adherent.sql
ERROR: syntax error at or near "(" at character 1001
psql -U pgsql -h wapiti dolibarr < llx_adherent_options.sql
ERROR: syntax error at or near "(" at character 157
psql -U pgsql -h wapiti dolibarr < llx_bank_class.sql
ERROR: syntax error at or near "(" at character 106
psql -U pgsql -h wapiti dolibarr < llx_const.sql
ERROR: syntax error at or near "(" at character 262
psql -U pgsql -h wapiti dolibarr < llx_facture.sql
ERROR: syntax error at or near "(" at character 1003
psql -U pgsql -h wapiti dolibarr < llx_facture_fourn.sql
ERROR: syntax error at or near "(" at character 680
psql -U pgsql -h wapiti dolibarr < llx_fichinter.sql
ERROR: syntax error at or near "(" at character 523
psql -U pgsql -h wapiti dolibarr < llx_groupart.sql
NOTICE: CREATE TABLE will create implicit sequence "llx_groupart_rowid_seq" for "serial"
column "llx_groupart.rowid"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "llx_groupart_pkey" for
table "llx_groupart"
ERROR: column "artiste" does not exist
psql -U pgsql -h wapiti dolibarr < llx_livre.sql
ERROR: syntax error at or near "(" at character 460
psql -U pgsql -h wapiti dolibarr < llx_product.sql
NOTICE: CREATE TABLE will create implicit sequence "llx_product_rowid_seq" for "serial"
column "llx_product.rowid"
ERROR: type "double" does not exist
psql -U pgsql -h wapiti dolibarr < llx_projet.sql
ERROR: syntax error at or near "(" at character 396
psql -U pgsql -h wapiti dolibarr < llx_propal.sql
ERROR: syntax error at or near "(" at character 892
psql -U pgsql -h wapiti dolibarr < llx_user.sql
ERROR: syntax error at or near "(" at character 573
psql -U pgsql -h wapiti dolibarr < llx_societe.sql
ERROR: syntax error at or near "(" at character 2306
psql -U pgsql -h wapiti dolibarr < llx_user_rights.sql
ERROR: syntax error at or near "(" at character 147
psql -U pgsql -h wapiti dolibarr < llx_product_price.sql
NOTICE: CREATE TABLE will create implicit sequence "llx_product_price_rowid_seq" for
"serial" column "llx_product_price.rowid"
ERROR: type "double" does not exist
On dirait que la majorité est causée par des définitions de table qui se
finissent par une contrainte, comme dans llx_adherent.sql:
create table llx_adherent
(
...
"datefin" timestamp, -- date de fin de validité de la
cotisation
"note" text,
"UNIQUE" INDEX(login)
);
Je pense que ça passerait mieux avec une ligne UNIQUE(login), sans le
"INDEX".