Hi Räphael, Isn't there a better solution to solve this problem?
Regards, Marcos. El 03/05/2013 12:14, "Florian Henry" <[email protected]> escribió: > Hello All, > > I would like to precise some things about PgSQL. There is a free > module on DoliStore to easy to migrate from MySQL to PgSQL. This module is > build for Dolibarr and do all check that need to be done speciccly for > Dolibarr and PgSQL. > Module : > http://www.dolistore.com/lang-fr/outils-systemes/195-Migrate-to-PostgreSQL.html > DoliForge Project : https://doliforge.org/projects/MigrationToPG/ > > There is a non solve issue between PgSQL and MySQL, the "update from" > request. > Syntax work with MySQL is : > UPDATE table_taget as target, table_source as source SET > fieldtarget=source.fieldsource > WHERE source.rowid=target.rowid; > > syntax work on pgSQL: > UPDATE table_taget as target SET fieldtarget=source.fieldsource > FROM table_source as source WHERE source.rowid=target.rowid; > > There is no native SQL request "update from" in dolibarr core. But in your > module you should do : > > if ($this->db->type=='pgsql') { > $sql="UPDATE table_taget as target SET fieldtarget=source.fieldsource > FROM table_source as source WHERE source.rowid=target.rowid"; > } else { > $sql= "UPDATE table_taget as target, table_source as source SET > fieldtarget=source.fieldsource > WHERE source.rowid=target.rowid"; > } > > Kind regards. > > > Florian [email protected]+33 6 03 76 48 > 07http://www.open-concept.pro > Twitter : @_Open_Concept_ > > Le 25/04/2013 22:47, Laurent Destailleur (eldy) a écrit : > > Le 25/04/2013 17:21, Marcos García a écrit : > > I think it would be nice that we use Dolibarr with Doctrine or any ORM so > that way we won't have compatibility problems with different database > drivers... > > > > What do you think? > > > Dolibarr already has its own abstract database driver. > And this abstract layer is really better than doctrine and any other orm. > We already test all of them and they were not enough powerfull to match > dolibarr quality, so we develop ours. > For exemple, > - Abstraction for error report differs according to dabase. System works > for all database but they return error code of database and not value > differs. > - Doctrime, like other ORM does not support imbricated level of > transaction > - Doctrine like other CRM does not allow to make a difference between ddl > and dml. And this is required to be able to manage upgrade process. > - Doctrine like other CRM support select, update, delete and insert but > few of them support instruction to manage foreign key creation, or support > is not working correctly. > > The problem of Florian is not a problem of ORM. It is just that request > are not correctly written by developer. So we have to fix this into core > code. > We recommand to develop using Postgresql, as when it works with postgres, > it works with mysql but not the oposite. > > > Regards, > > > > *Marcos García* > > [email protected] > > > > 2013/4/25 Florian Henry <[email protected]> > >> Dear developpers, >> >> I'm currently experiement lot's of problem with PostgreSQL only >> due to non SQL respect standard. >> >> As reminder with an agregate SQL function you must put in GROUP >> BY all field that are not in the agreate >> >> For example : SELECT t.name,t.id, SUM(t.cost) FROM llx_table >> GROUP BY t.id >> That's WRONG ! MySQL let it go, but PgSQL no ! >> >> Correct version is SELECT* t.name,t.id*, SUM(t.cost) FROM >> llx_table GROUP BY *t.name,t.id >> >> * This kind of problem cannot be detected by UnitTest because >> most of the time the are on list, not in object method, but in list SQL. >> >> Other common problem is into insert or update method >> If your field is an integer, you must have this to build the >> request : >> $sql.= " ".(! >> empty($this->fk_fourn)?"'".$this->fk_fourn."'":"null"); >> and NOT >> $sql.= " '".(! >> empty($this->fk_fourn)?$this->fk_fourn:"null")."'"; >> >> Try to sent update or insert request UPDATE llx_table SET >> fk_fourn='' WHERE ... in PgSQL it will say '' is not a valid inter, and is >> right. >> Once again MySQL let it go but insert 0 instead of NULL.... >> >> >> Regards >> >> -- >> Florian [email protected]+33 6 03 76 48 >> 07http://www.open-concept.pro >> Twitter : @_Open_Concept_ >> >> >> _______________________________________________ >> Dolibarr-dev mailing list >> [email protected] >> https://lists.nongnu.org/mailman/listinfo/dolibarr-dev >> >> > > > _______________________________________________ > Dolibarr-dev mailing > [email protected]https://lists.nongnu.org/mailman/listinfo/dolibarr-dev > > > > -- > Eldy (Laurent Destailleur). > > EMail: [email protected] > Web: http://www.destailleur.fr > > Dolibarr (Project leader): http://www.dolibarr.org > To make a donation for Dolibarr project via Paypal: [email protected] > AWStats (Author) : http://awstats.sourceforge.net > To make a donation for AWStats project via Paypal: [email protected] > AWBot (Author) : http://awbot.sourceforge.net > CVSChangeLogBuilder (Author) : http://cvschangelogb.sourceforge.net > > > > _______________________________________________ > Dolibarr-dev mailing > [email protected]https://lists.nongnu.org/mailman/listinfo/dolibarr-dev > > > > _______________________________________________ > Dolibarr-dev mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/dolibarr-dev > >
_______________________________________________ Dolibarr-dev mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/dolibarr-dev
