4.0.0-5.0.0.sql 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. --
  2. -- Be carefull to requests order.
  3. -- This file must be loaded by calling /install/index.php page
  4. -- when current version is 5.0.0 or higher.
  5. --
  6. -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new;
  7. -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;
  8. -- To rename a column: ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);
  9. -- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname;
  10. -- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60);
  11. -- To set a DEFAULT value: ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT (0|NULL|...);
  12. -- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name;
  13. -- To drop an index: -- VMYSQL4.0 DROP INDEX nomindex on llx_table
  14. -- To drop an index: -- VPGSQL8.0 DROP INDEX nomindex
  15. -- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y
  16. -- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y
  17. -- To make pk to be auto increment (mysql): -- VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT;
  18. -- To make pk to be auto increment (postgres): -- VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE
  19. -- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL;
  20. -- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL;
  21. -- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL;
  22. -- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL;
  23. -- Note: fields with type BLOB/TEXT can't have default value.
  24. -- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
  25. -- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup);
  26. -- after changing const name, please insure that old constant was rename
  27. UPDATE llx_const SET name = __ENCRYPT('THIRDPARTY_DEFAULT_CREATE_CONTACT')__ WHERE name = __ENCRYPT('MAIN_THIRPARTY_CREATION_INDIVIDUAL')__; -- under 3.9.0
  28. UPDATE llx_const SET name = __ENCRYPT('THIRDPARTY_DEFAULT_CREATE_CONTACT')__ WHERE name = __ENCRYPT('MAIN_THIRDPARTY_CREATION_INDIVIDUAL')__; -- under 4.0.1
  29. -- VPGSQL8.2 ALTER TABLE llx_product_lot ALTER COLUMN entity SET DEFAULT 1;
  30. ALTER TABLE llx_product_lot MODIFY COLUMN entity integer DEFAULT 1;
  31. UPDATE llx_product_lot SET entity = 1 WHERE entity IS NULL;
  32. ALTER TABLE llx_bank_account ADD COLUMN extraparams varchar(255);
  33. ALTER TABLE llx_societe ALTER COLUMN fk_stcomm SET DEFAULT 0;
  34. ALTER TABLE llx_c_actioncomm ADD COLUMN picto varchar(48);
  35. ALTER TABLE llx_facturedet ADD INDEX idx_facturedet_fk_code_ventilation (fk_code_ventilation);
  36. ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_code_ventilation (fk_code_ventilation);
  37. ALTER TABLE llx_facture_fourn_det ADD INDEX idx_facture_fourn_det_fk_product (fk_product);
  38. ALTER TABLE llx_facture_rec ADD COLUMN fk_user_modif integer;
  39. ALTER TABLE llx_expedition ADD COLUMN fk_user_modif integer;
  40. ALTER TABLE llx_projet ADD COLUMN fk_user_modif integer;
  41. ALTER TABLE llx_adherent ADD COLUMN model_pdf varchar(255);
  42. ALTER TABLE llx_don ADD COLUMN date_valid datetime;
  43. DELETE FROM llx_menu where module='expensereport';
  44. ALTER TABLE llx_facturedet ADD COLUMN fk_user_author integer after fk_unit;
  45. ALTER TABLE llx_facturedet ADD COLUMN fk_user_modif integer after fk_unit;
  46. ALTER TABLE llx_user DROP COLUMN phenix_login;
  47. ALTER TABLE llx_user DROP COLUMN phenix_pass;
  48. ALTER TABLE llx_user ADD COLUMN dateemployment datetime;
  49. ALTER TABLE llx_user MODIFY login varchar(50) NOT NULL;
  50. ALTER TABLE llx_societe ADD COLUMN fk_account integer;
  51. ALTER TABLE llx_commandedet ADD COLUMN fk_commandefourndet integer DEFAULT NULL after import_key; -- link to detail line of commande fourn (resplenish)
  52. ALTER TABLE llx_commandedet MODIFY COLUMN fk_commandefourndet integer DEFAULT NULL;
  53. ALTER TABLE llx_website ADD COLUMN virtualhost varchar(255) after fk_default_home;
  54. ALTER TABLE llx_chargesociales ADD COLUMN fk_account integer after fk_type;
  55. ALTER TABLE llx_chargesociales ADD COLUMN fk_mode_reglement integer after fk_account;
  56. ALTER TABLE llx_chargesociales ADD COLUMN fk_user_author integer;
  57. ALTER TABLE llx_chargesociales ADD COLUMN fk_user_modif integer;
  58. ALTER TABLE llx_chargesociales ADD COLUMN fk_user_valid integer;
  59. ALTER TABLE llx_ecm_files ADD COLUMN gen_or_uploaded varchar(12) after cover;
  60. DROP TABLE llx_document_generator;
  61. DROP TABLE llx_ecm_documents;
  62. DROP TABLE llx_holiday_events;
  63. DROP TABLE llx_holiday_types;
  64. ALTER TABLE llx_notify ADD COLUMN type_target varchar(16) NULL;
  65. ALTER TABLE llx_entrepot DROP COLUMN valo_pmp;
  66. ALTER TABLE llx_notify_def MODIFY COLUMN fk_soc integer NULL;
  67. -- VPGSQL8.2 ALTER TABLE llx_notify_def ALTER COLUMN fk_soc SET DEFAULT NULL;
  68. create table llx_categorie_project
  69. (
  70. fk_categorie integer NOT NULL,
  71. fk_project integer NOT NULL,
  72. import_key varchar(14)
  73. )ENGINE=innodb;
  74. ALTER TABLE llx_categorie_project ADD PRIMARY KEY pk_categorie_project (fk_categorie, fk_project);
  75. ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_categorie (fk_categorie);
  76. ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_project (fk_project);
  77. ALTER TABLE llx_categorie_project ADD CONSTRAINT fk_categorie_project_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
  78. ALTER TABLE llx_categorie_project ADD CONSTRAINT fk_categorie_project_fk_project_rowid FOREIGN KEY (fk_project) REFERENCES llx_projet (rowid);
  79. ALTER TABLE llx_societe_remise_except ADD COLUMN entity integer DEFAULT 1 NOT NULL after rowid;
  80. ALTER TABLE llx_societe_remise ADD COLUMN entity integer DEFAULT 1 NOT NULL after rowid;
  81. create table llx_expensereport_extrafields
  82. (
  83. rowid integer AUTO_INCREMENT PRIMARY KEY,
  84. tms timestamp,
  85. fk_object integer NOT NULL,
  86. import_key varchar(14) -- import key
  87. ) ENGINE=innodb;
  88. ALTER TABLE llx_expensereport_extrafields ADD INDEX idx_expensereport_extrafields (fk_object);
  89. ALTER TABLE llx_cotisation RENAME TO llx_subscription;
  90. ALTER TABLE llx_subscription ADD UNIQUE INDEX uk_subscription (fk_adherent,dateadh);
  91. ALTER TABLE llx_subscription CHANGE COLUMN cotisation subscription real;
  92. ALTER TABLE llx_adherent_type CHANGE COLUMN cotisation subscription varchar(3) NOT NULL DEFAULT '1';
  93. UPDATE llx_adherent_type SET subscription = '1' WHERE subscription = 'yes';
  94. CREATE TABLE llx_product_lot_extrafields
  95. (
  96. rowid integer AUTO_INCREMENT PRIMARY KEY,
  97. tms timestamp,
  98. fk_object integer NOT NULL,
  99. import_key varchar(14) -- import key
  100. ) ENGINE=innodb;
  101. ALTER TABLE llx_product_lot_extrafields ADD INDEX idx_product_lot_extrafields (fk_object);
  102. ALTER TABLE llx_website_page MODIFY COLUMN content MEDIUMTEXT;
  103. CREATE TABLE llx_product_warehouse_properties
  104. (
  105. rowid integer AUTO_INCREMENT PRIMARY KEY,
  106. tms timestamp,
  107. fk_product integer NOT NULL,
  108. fk_entrepot integer NOT NULL,
  109. seuil_stock_alerte integer DEFAULT 0,
  110. desiredstock integer DEFAULT 0,
  111. import_key varchar(14) -- Import key
  112. )ENGINE=innodb;
  113. ALTER TABLE llx_accounting_bookkeeping ADD COLUMN entity integer DEFAULT 1 NOT NULL;
  114. ALTER TABLE llx_accounting_bookkeeping ADD COLUMN fk_user_modif integer;
  115. ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_creation datetime;
  116. ALTER TABLE llx_accounting_bookkeeping ADD COLUMN tms timestamp;
  117. -- VMYSQL4.3 ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN numero_compte varchar(32) NOT NULL;
  118. -- VMYSQL4.3 ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN code_journal varchar(32) NOT NULL;
  119. -- VPGSQL8.2 ALTER TABLE llx_accounting_bookkeeping ALTER COLUMN numero_compte SET NOT NULL;
  120. -- VPGSQL8.2 ALTER TABLE llx_accounting_bookkeeping ALTER COLUMN code_journal SET NOT NULL;
  121. ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (account_number, entity, fk_pcg_version);
  122. ALTER TABLE llx_expensereport_det ADD COLUMN fk_code_ventilation integer DEFAULT 0;
  123. ALTER TABLE llx_c_payment_term CHANGE COLUMN fdm type_cdr tinyint;
  124. ALTER TABLE llx_facturedet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  125. ALTER TABLE llx_facturedet_rec ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  126. ALTER TABLE llx_facture_fourn_det ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  127. ALTER TABLE llx_commandedet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  128. ALTER TABLE llx_commande_fournisseurdet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  129. ALTER TABLE llx_propaldet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  130. ALTER TABLE llx_supplier_proposaldet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  131. ALTER TABLE llx_supplier_proposaldet ADD COLUMN fk_unit integer DEFAULT NULL;
  132. ALTER TABLE llx_contratdet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx;
  133. ALTER TABLE llx_c_payment_term CHANGE COLUMN fdm type_cdr TINYINT;
  134. ALTER TABLE llx_entrepot ADD COLUMN fk_parent integer DEFAULT 0;
  135. create table llx_resource_extrafields
  136. (
  137. rowid integer AUTO_INCREMENT PRIMARY KEY,
  138. tms timestamp,
  139. fk_object integer NOT NULL,
  140. import_key varchar(14) -- import key
  141. ) ENGINE=innodb;
  142. ALTER TABLE llx_resource_extrafields ADD INDEX idx_resource_extrafields (fk_object);
  143. INSERT INTO llx_const (name, value, type, note, visible, entity) values (__ENCRYPT('MAIN_SIZE_SHORTLIST_LIMIT')__, __ENCRYPT('3')__, 'chaine', 'Max length for small lists (tabs)', 0, 0);
  144. INSERT INTO llx_const (name, value, type, note, visible, entity) values (__ENCRYPT('EXPEDITION_ADDON_NUMBER')__, __ENCRYPT('mod_expedition_safor')__, 'chaine','Name for numbering manager for shipments',0,1);
  145. ALTER TABLE llx_bank_account ADD COLUMN note_public text;
  146. ALTER TABLE llx_bank_account ADD COLUMN model_pdf varchar(255);
  147. ALTER TABLE llx_bank_account ADD COLUMN import_key varchar(14);
  148. ALTER TABLE llx_projet ADD COLUMN import_key varchar(14);
  149. ALTER TABLE llx_projet_task ADD COLUMN import_key varchar(14);
  150. ALTER TABLE llx_projet_task_time ADD COLUMN import_key varchar(14);
  151. ALTER TABLE llx_overwrite_trans ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER rowid;
  152. ALTER TABLE llx_mailing_cibles ADD COLUMN error_text varchar(255);
  153. ALTER TABLE llx_c_actioncomm MODIFY COLUMN type varchar(50) DEFAULT 'system' NOT NULL;
  154. -- VPGSQL8.2 ALTER TABLE llx_c_actioncomm ALTER COLUMN type SET DEFAULT 'system';
  155. -- VPGSQL8.2 ALTER TABLE llx_c_actioncomm ALTER COLUMN type SET NOT NULL;
  156. create table llx_user_employment
  157. (
  158. rowid integer AUTO_INCREMENT PRIMARY KEY,
  159. entity integer DEFAULT 1 NOT NULL, -- multi company id
  160. ref varchar(50), -- reference
  161. ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
  162. fk_user integer,
  163. datec datetime,
  164. tms timestamp,
  165. fk_user_creat integer,
  166. fk_user_modif integer,
  167. job varchar(128), -- job position. may be a dictionary
  168. status integer NOT NULL, -- draft, active, closed
  169. salary double(24,8), -- last and current value stored into llx_user
  170. salaryextra double(24,8), -- last and current value stored into llx_user
  171. weeklyhours double(16,8), -- last and current value stored into llx_user
  172. dateemployment date, -- last and current value stored into llx_user
  173. dateemploymentend date -- last and current value stored into llx_user
  174. )ENGINE=innodb;
  175. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_date_debut (date_debut);
  176. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_date_fin (date_fin);
  177. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_statut (fk_statut);
  178. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_user_author (fk_user_author);
  179. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_user_valid (fk_user_valid);
  180. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_user_approve (fk_user_approve);
  181. ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_refuse (fk_user_approve);
  182. DELETE FROM llx_actioncomm_resources WHERE fk_actioncomm not in (select id from llx_actioncomm);
  183. -- Sequence to removed duplicated values of llx_links. Use serveral times if you still have duplicate.
  184. DROP TABLE tmp_links_double;
  185. --select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2;
  186. CREATE TABLE tmp_links_double AS (SELECT objectid, label, MAX(rowid) AS max_rowid, COUNT(rowid) AS count_rowid FROM llx_links WHERE label IS NOT NULL GROUP BY objectid, label HAVING COUNT(rowid) >= 2);
  187. --select * from tmp_links_double;
  188. DELETE FROM llx_links WHERE (rowid, label) IN (SELECT max_rowid, label FROM tmp_links_double); --update to avoid duplicate, delete to delete
  189. DROP TABLE tmp_links_double;
  190. ALTER TABLE llx_links ADD UNIQUE INDEX uk_links (objectid,label);
  191. ALTER TABLE llx_expensereport ADD UNIQUE INDEX idx_expensereport_uk_ref (ref, entity);
  192. UPDATE llx_projet_task SET ref = NULL WHERE ref = '';
  193. ALTER TABLE llx_projet_task ADD UNIQUE INDEX uk_projet_task_ref (ref, entity);
  194. ALTER TABLE llx_contrat ADD COLUMN fk_user_modif integer;
  195. UPDATE llx_accounting_account SET account_parent = 0 WHERE account_parent = '';
  196. -- VMYSQL4.3 ALTER TABLE llx_product_price MODIFY COLUMN date_price DATETIME NULL;
  197. -- VPGSQL8.2 ALTER TABLE llx_product_price ALTER COLUMN date_price DROP NOT NULL;
  198. ALTER TABLE llx_product_price ALTER COLUMN date_price SET DEFAULT NULL;
  199. ALTER TABLE llx_product_price ADD COLUMN default_vat_code varchar(10) after tva_tx;
  200. ALTER TABLE llx_product_customer_price ADD COLUMN default_vat_code varchar(10) after tva_tx;
  201. ALTER TABLE llx_product_customer_price_log ADD COLUMN default_vat_code varchar(10) after tva_tx;
  202. ALTER TABLE llx_product_fournisseur_price ADD COLUMN default_vat_code varchar(10) after tva_tx;
  203. ALTER TABLE llx_events MODIFY COLUMN ip varchar(250);
  204. UPDATE llx_bank SET label= '(SupplierInvoicePayment)' WHERE label= 'Règlement fournisseur';
  205. UPDATE llx_bank SET label= '(CustomerInvoicePayment)' WHERE label= 'Règlement client';