dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Support Postgres


From: Francois Tigeot
Subject: Re: [Dolibarr-dev] Support Postgres
Date: Mon, 28 Feb 2005 20:03:18 +0100
User-agent: Mutt/1.4.2.1i

On Mon, Feb 28, 2005 at 05:11:27PM +0100, Eldy wrote:
> 
> Etant donné que les fichiers sql du répertoire pgsl/tables ne sont pas à 
> jour et que maintenir 2 versions (mysql et pgsql) est par expérience une 
> mauvaise solution (oubli, décalage, ...), j'ai inclus dans le répertoire 
> build un nouveau script appelé  dolibarr_mysql2pgsl.
> Il ne prend pas d'arguments, il se lance simplement et va 
> automatiquement générer les sql de création des tables pour pgsql à 
> partir de ceux existant pour mysql (conversion de syntaxe).
> 
> Je l'ai appliqué une première fois, ce qui a eu pour effet de mettre à 
> niveau tous les sql de pgsql que j'ai commités.
> Le résultat m'a l'air syntaxiquement pas mal pour un premier coup. 
> J'attends cependant des retours de vrais utilisateurs pgsql pour me 
> signaler les sql qui ne passerait pas afin que j'améliore l'outil.

Bon, j'ai modifié les Makefiles, et j'ai pu tester les fichiers *.sql

Postgres me retourne énormèment d'erreurs sur des types de données non
standards. Par exemple :

        psql -U pgsql -h wapiti dolibarr < llx_c_actioncomm.sql
        ERROR:  type "tinyint" does not exist

Ou bien:

        psql -U pgsql -h wapiti dolibarr < llx_bank_account.sql
        NOTICE:  CREATE TABLE will create implicit sequence
        "llx_bank_account_rowid_seq" for "serial" column 
"llx_bank_account.rowid"
        ERROR:  type "datetime" does not exist

Bref, le code généré automatiquement n'a pas l'air génial.

Mais surtout, ce qui me gêne le plus en regardant les différences par
rapport aux fichiers .sql précédents dans le CVS, c'est que plein de
choses qui avaient manifestements été pensées par un humain ont été remplacées
par des types de données plus ou moins équivalents qui risquent de poser
des problèmes subtils.

Si je prends un exemple, dans llx_c_actioncomm.sql, un SERIAL a ainsi été
remplacé par un INTEGER.
Ca fonctionne presque de la même façon, mais la séquence normalement associée
au SERIAL ne sera pas mise à jour, ce qui fait qu'au prochain insert dans la
table, un élément n'aura pas la bonne valeur...

-- 
Francois Tigeot




reply via email to

[Prev in Thread] Current Thread [Next in Thread]