From e698c410f5a0a6115a90661ab51ea7b5545e375b Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Thu, 28 Apr 2016 13:56:17 +0200 Subject: [PATCH] FIX Postgres migration from 3.9 to 4.0 --- htdocs/core/lib/admin.lib.php | 5 +++-- htdocs/install/mysql/migration/3.9.0-4.0.0.sql | 12 +++++------- .../mysql/tables/llx_societe_remise_except.sql | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index ce495a771d880..4f08650e56b7e 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -346,7 +346,8 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='',$oker 'DB_ERROR_NO_INDEX_TO_DROP', 'DB_ERROR_CANNOT_CREATE', // Qd contrainte deja existante 'DB_ERROR_CANT_DROP_PRIMARY_KEY', - 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS' + 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS', + 'DB_ERROR_22P02' ); if ($okerror == 'none') $okerrors=array(); @@ -928,7 +929,7 @@ function complete_dictionary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsql foreach($objMod->dictionaries['tabcond'] as $val) { $nbtabcond++; $tabcond[] = $val; } if (! empty($objMod->dictionaries['tabhelp'])) foreach($objMod->dictionaries['tabhelp'] as $val) { $nbtabhelp++; $tabhelp[] = $val; } if (! empty($objMod->dictionaries['tabfieldcheck'])) foreach($objMod->dictionaries['tabfieldcheck'] as $val) { $nbtabfieldcheck++; $tabfieldcheck[] = $val; } - + if ($nbtabname != $nbtablib || $nbtablib != $nbtabsql || $nbtabsql != $nbtabsqlsort) { print 'Error in descriptor of module '.$const_name.'. Array ->dictionaries has not same number of record for key "tabname", "tablib", "tabsql" and "tabsqlsort"'; diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql index 832107e7f6f69..236d9c861de73 100644 --- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql +++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql @@ -303,19 +303,15 @@ ALTER TABLE llx_contratdet ADD COLUMN multicurrency_total_ht double(24,8) DEFAUL ALTER TABLE llx_contratdet ADD COLUMN multicurrency_total_tva double(24,8) DEFAULT 0; ALTER TABLE llx_contratdet ADD COLUMN multicurrency_total_ttc double(24,8) DEFAULT 0; - - ALTER TABLE llx_paiement ADD COLUMN multicurrency_amount double(24,8) DEFAULT 0; ALTER TABLE llx_paiement_facture ADD COLUMN multicurrency_amount double(24,8) DEFAULT 0; ALTER TABLE llx_paiementfourn ADD COLUMN multicurrency_amount double(24,8) DEFAULT 0; ALTER TABLE llx_paiementfourn_facturefourn ADD COLUMN multicurrency_amount double(24,8) DEFAULT 0; -ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_amount_ht double(24,8) NOT NULL; +ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_amount_ht double(24,8) DEFAULT 0 NOT NULL; ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_amount_tva double(24,8) DEFAULT 0 NOT NULL; ALTER TABLE llx_societe_remise_except ADD COLUMN multicurrency_amount_ttc double(24,8) DEFAULT 0 NOT NULL; - - ALTER TABLE llx_supplier_proposal ADD COLUMN fk_multicurrency integer; ALTER TABLE llx_supplier_proposal ADD COLUMN multicurrency_code varchar(255); ALTER TABLE llx_supplier_proposal ADD COLUMN multicurrency_tx double(24,8) DEFAULT 1; @@ -367,10 +363,12 @@ CREATE TABLE llx_c_accounting_category ( ALTER TABLE llx_c_accounting_category ADD UNIQUE INDEX uk_c_accounting_category(code); UPDATE llx_accounting_account SET account_parent = '0' WHERE account_parent = ''; -ALTER TABLE llx_accounting_account MODIFY COLUMN account_parent integer DEFAULT 0; +-- VMYSQL4.1 ALTER TABLE llx_accounting_account MODIFY COLUMN account_parent integer DEFAULT 0; +-- VPGSQL8.2 ALTER TABLE llx_accounting_account ALTER COLUMN account_parent TYPE integer USING account_parent::integer; -DROP INDEX uk_bordereau_cheque ON llx_bordereau_cheque; +-- VMYSQL4.1 DROP INDEX uk_bordereau_cheque ON llx_bordereau_cheque; +-- VPGSQL8.2 DROP INDEX uk_bordereau_cheque; ALTER TABLE llx_bordereau_cheque CHANGE COLUMN number ref VARCHAR(30) NOT NULL; CREATE UNIQUE INDEX uk_bordereau_cheque ON llx_bordereau_cheque (ref, entity); diff --git a/htdocs/install/mysql/tables/llx_societe_remise_except.sql b/htdocs/install/mysql/tables/llx_societe_remise_except.sql index ef84e0081d62b..f17d17670d22c 100644 --- a/htdocs/install/mysql/tables/llx_societe_remise_except.sql +++ b/htdocs/install/mysql/tables/llx_societe_remise_except.sql @@ -33,7 +33,7 @@ create table llx_societe_remise_except fk_facture integer, fk_facture_source integer, description text NOT NULL, - multicurrency_amount_ht double(24,8) NOT NULL, + multicurrency_amount_ht double(24,8) DEFAULT 0 NOT NULL, multicurrency_amount_tva double(24,8) DEFAULT 0 NOT NULL, multicurrency_amount_ttc double(24,8) DEFAULT 0 NOT NULL )ENGINE=innodb;