SchemaVersionUpgrade.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  1. <?php
  2. // CRM_CONFIG:
  3. // - Schema_SystemObjectFieldStorageAcl__version 3
  4. // - Schema_SystemObjectStorageAcl__version 2
  5. // - RefConfig__version 2
  6. // Instance - `CRM_INSTANCE_CONFIG`
  7. // Ref - `CRM_REF_CONFIG`
  8. // SystemObject - `CRM_#CACHE_ACL_OBJECT`
  9. // SystemObjectField - `CRM_#CACHE_ACL_OBJECT_FIELD`, `CRM_#CACHE_ACL_OBJECT_FIELD_enum`
  10. // TODO: remove `CRM_INSTANCE_CONFIG`.`idInstanceBase`
  11. // TODO: DROP FUNCTION IF EXISTS `{$dbName}`.`isInstance_{$idInstance}` // for every instance
  12. // TODO: `CRM_REF_CONFIG` powinna zależeć od `CRM_#CACHE_ACL_OBJECT_FIELD`.isActive
  13. // TODO: `CRM_#CACHE_ACL_OBJECT_FIELD` add field label - read from xsd/p5:label: |> !empty -> p5:label |> empty -> cut from ":" for ref fields
  14. class SchemaVersionUpgrade {
  15. static $REF_DB_SCHEMA_VERSION = 2;
  16. static $SYSTEM_OBJECT_DB_SCHEMA_VERSION = 2;
  17. static $SYSTEM_OBJECT_FIELD_DB_SCHEMA_VERSION = 2;
  18. static function _getDBVersion() {
  19. return (int)DB::getPDO()->fetchValue(" select `CONF_VAL` from `CRM_CONFIG` where `CONF_KEY` = 'SchemaVersionUpgrade__version' ");
  20. }
  21. static function _updateDBVersion($version) {
  22. DB::getPDO()->execSql(" REPLACE INTO CRM_CONFIG (`CONF_KEY`,`CONF_VAL`) VALUES ('SchemaVersionUpgrade__version', '{$version}') ");
  23. }
  24. static function upgradeSchema() {
  25. static $_DB_SCHEMA_VERSION = null;
  26. if (!$_DB_SCHEMA_VERSION) DBG::log("DBG: SchemaVersionUpgrade: Brak VERSION w static");
  27. if (!$_DB_SCHEMA_VERSION) $_DB_SCHEMA_VERSION = V::get('_DB_SCHEMA_VERSION', 0, $_SESSION, 'int');
  28. if (!$_DB_SCHEMA_VERSION) DBG::log("DBG: SchemaVersionUpgrade: Brak VERSION w sesji");
  29. if (!$_DB_SCHEMA_VERSION) $_DB_SCHEMA_VERSION = self::_getDBVersion();
  30. if (!$_DB_SCHEMA_VERSION) DBG::log("DBG: SchemaVersionUpgrade: Brak VERSION w bazie danych");
  31. if (!$_DB_SCHEMA_VERSION) {
  32. self::_fixRefConfigDatabaseSchema();
  33. self::_fixSystemObjectDatabaseSchema();
  34. self::_fixSystemObjectFieldDatabaseSchema();
  35. self::_createInstanceConfigTable();
  36. $_DB_SCHEMA_VERSION = 4;
  37. $_SESSION['_DB_SCHEMA_VERSION'] = 4;
  38. self::_updateDBVersion(4);
  39. }
  40. if ($_DB_SCHEMA_VERSION < 5) {
  41. self::_upgradeFrom4To5();
  42. $_DB_SCHEMA_VERSION = 5;
  43. $_SESSION['_DB_SCHEMA_VERSION'] = 5;
  44. self::_updateDBVersion(5);
  45. }
  46. if ($_DB_SCHEMA_VERSION < 6) {
  47. self::_upgradeFrom5To6();
  48. $_DB_SCHEMA_VERSION = 6;
  49. $_SESSION['_DB_SCHEMA_VERSION'] = 6;
  50. self::_updateDBVersion(6);
  51. }
  52. if ($_DB_SCHEMA_VERSION < 7) { // set 'view' as default instance table
  53. self::_upgradeFrom6To7();
  54. $_DB_SCHEMA_VERSION = 7;
  55. $_SESSION['_DB_SCHEMA_VERSION'] = 7;
  56. self::_updateDBVersion(7);
  57. }
  58. if ($_DB_SCHEMA_VERSION < 8) {
  59. self::_upgradeFrom7To8();
  60. $_DB_SCHEMA_VERSION = 8;
  61. $_SESSION['_DB_SCHEMA_VERSION'] = 8;
  62. self::_updateDBVersion(8);
  63. }
  64. // if ($_DB_SCHEMA_VERSION < 9) {
  65. // self::_upgradeFrom8To9();
  66. // $_DB_SCHEMA_VERSION = 9;
  67. // $_SESSION['_DB_SCHEMA_VERSION'] = 9;
  68. // self::_updateDBVersion(9);
  69. // }
  70. }
  71. static function _getRefConfigDBVersion() {
  72. return (int)DB::getPDO()->fetchValue(" select `CONF_VAL` from `CRM_CONFIG` where `CONF_KEY` = 'RefConfig__version' ");
  73. }
  74. static function _updateRefConfigDBVersion($version) {
  75. DB::getPDO()->execSql(" REPLACE INTO CRM_CONFIG (`CONF_KEY`,`CONF_VAL`) VALUES ('RefConfig__version', '{$version}') ");
  76. }
  77. static function _fixRefConfigDatabaseSchema() {
  78. static $_REF_DB_SCHEMA_VERSION;
  79. DBG::log("_fixRefConfigDatabaseSchema \$_REF_DB_SCHEMA_VERSION({$_REF_DB_SCHEMA_VERSION})");
  80. if (!$_REF_DB_SCHEMA_VERSION) {
  81. $_REF_DB_SCHEMA_VERSION = self::_getRefConfigDBVersion();
  82. if (2 === self::$REF_DB_SCHEMA_VERSION && $_REF_DB_SCHEMA_VERSION < self::$REF_DB_SCHEMA_VERSION) {
  83. DB::getPDO()->execSql("
  84. CREATE TABLE IF NOT EXISTS `CRM_REF_CONFIG` (
  85. `ID` INT NOT NULL AUTO_INCREMENT
  86. , `ROOT_OBJECT_NS` VARCHAR(255) NOT NULL
  87. , `CHILD_NAME` VARCHAR(255) NOT NULL
  88. , `CHILD_NS` VARCHAR(255) NOT NULL
  89. , `A_STATUS` enum('WAITING', 'NORMAL', 'DELETED') NOT NULL DEFAULT 'WAITING'
  90. , `VERSION` int(11) NOT NULL DEFAULT 0
  91. , `A_LAST_ACTION_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  92. , `SOURCE` enum('table', 'view', 'backRef') NOT NULL DEFAULT 'table'
  93. , PRIMARY KEY (`ID`)
  94. ) ENGINE = MyISAM DEFAULT CHARSET=latin2;
  95. ");
  96. try { // upgrade from version 0.1
  97. DB::getPDO()->execSql(" ALTER TABLE `CRM_REF_CONFIG` ADD `SOURCE` enum('table', 'view', 'backRef') not null default 'table' ");
  98. } catch (Exception $e) {
  99. DBG::log($e);
  100. }
  101. try { // upgrade from version 0.2
  102. DB::getPDO()->execSql(" ALTER TABLE `CRM_REF_CONFIG` CHANGE `SOURCE` `SOURCE` enum('table', 'view', 'backRef') not null default 'table' ");
  103. } catch (Exception $e) {
  104. DBG::log($e);
  105. }
  106. DB::getPDO()->execSql("
  107. update CRM_REF_CONFIG
  108. set CHILD_NS = REPLACE(REPLACE(CHILD_NS, '__x3A__', '/'), ':', '/')
  109. where CHILD_NS = CHILD_NAME
  110. ");
  111. self::_updateRefConfigDBVersion(2);
  112. }
  113. }
  114. }
  115. static function _getSystemObjectDBVersion() {
  116. return (int)DB::getPDO()->fetchValue(" select `CONF_VAL` from `CRM_CONFIG` where `CONF_KEY` = 'Schema_SystemObjectStorageAcl__version' ");
  117. }
  118. static function _updateSystemObjectDBVersion($version) {
  119. DB::getPDO()->execSql(" REPLACE INTO CRM_CONFIG (`CONF_KEY`,`CONF_VAL`) VALUES ('Schema_SystemObjectStorageAcl__version', '{$version}') ");
  120. }
  121. static function _fixSystemObjectDatabaseSchema() {
  122. $dbVersion = self::_getSystemObjectDBVersion();
  123. if (!$dbVersion || $dbVersion < 2) { // version is 1 - upgrade to 2
  124. DB::getPDO()->execSql("
  125. create table if not exists `CRM_#CACHE_ACL_OBJECT` (
  126. `idZasob` int(11) DEFAULT NULL,
  127. `idDatabase` int(11) NOT NULL,
  128. `namespace` varchar(255) DEFAULT '',
  129. `_rootTableName` varchar(255) DEFAULT '',
  130. `_type` varchar(255) DEFAULT '',
  131. `hasStruct` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'has structure',
  132. `isStructInstalled` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'has installed structure',
  133. `isObjectActive` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'object is active',
  134. `description` varchar(255) DEFAULT '',
  135. `primaryKey` varchar(255) DEFAULT '',
  136. `hasWriteGroupField` tinyint(1) NOT NULL DEFAULT 0,
  137. `hasReadGroupField` tinyint(1) NOT NULL DEFAULT 0,
  138. `hasOwnerField` tinyint(1) NOT NULL DEFAULT 0,
  139. UNIQUE KEY `idZasob` (idZasob),
  140. UNIQUE KEY `namespace` (namespace),
  141. KEY `isObjectActive` (isObjectActive)
  142. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  143. ");
  144. try {
  145. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `primaryKey` VARCHAR(255) NOT NULL DEFAULT '' AFTER `description` ");
  146. } catch (Exception $e) {
  147. DBG::log($e);
  148. }
  149. try {
  150. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `hasWriteGroupField` tinyint(1) NOT NULL DEFAULT 0 ");
  151. } catch (Exception $e) {
  152. DBG::log($e);
  153. }
  154. try {
  155. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `hasReadGroupField` tinyint(1) NOT NULL DEFAULT 0 ");
  156. } catch (Exception $e) {
  157. DBG::log($e);
  158. }
  159. try {
  160. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `hasOwnerField` tinyint(1) NOT NULL DEFAULT 0 ");
  161. } catch (Exception $e) {
  162. DBG::log($e);
  163. }
  164. self::fixSystemObjectCoreTablesStructInstalled();
  165. $dbVersion = 2; self::_updateSystemObjectDBVersion($dbVersion);
  166. }
  167. // self::$SYSTEM_OBJECT_DB_SCHEMA_VERSION
  168. // if ($dbVersion < 3) {
  169. // // sql ...
  170. // $dbVersion = 3; self::_updateSystemObjectDBVersion($dbVersion);
  171. // }
  172. }
  173. static function fixSystemObjectCoreTablesStructInstalled() { // Fix hasWriteGroupField, hasReadGroupField, hasOwnerField
  174. // TODO: mv to updateCache function - required after clear cache tables
  175. DB::getPDO()->execSql("
  176. CREATE TABLE IF NOT EXISTS `tmp_cache_acl_fields` (
  177. `table_name` varchar(64) NOT NULL DEFAULT '',
  178. `column_name` varchar(64) NOT NULL DEFAULT '',
  179. UNIQUE KEY `table_2` (`table_name`,`column_name`),
  180. KEY `table` (`table_name`)
  181. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  182. ");
  183. DB::getPDO()->execSql("
  184. CREATE TABLE IF NOT EXISTS `tmp_cache_acl_group_fields` (
  185. `table_name` varchar(64) NOT NULL DEFAULT '',
  186. `has_write` tinyint(1) NOT NULL DEFAULT 0,
  187. `has_read` tinyint(1) NOT NULL DEFAULT 0,
  188. `has_owner` tinyint(1) NOT NULL DEFAULT 0,
  189. UNIQUE KEY `table_name` (`table_name`)
  190. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  191. ");
  192. DB::getPDO()->execSql(" TRUNCATE TABLE `tmp_cache_acl_fields` ");
  193. DB::getPDO()->execSql(" TRUNCATE TABLE `tmp_cache_acl_group_fields` ");
  194. DB::getPDO()->execSql("
  195. insert into tmp_cache_acl_group_fields(table_name, has_write, has_read, has_owner)
  196. select c.TABLE_NAME as table_name
  197. , IF(c.COLUMN_NAME = 'A_ADM_COMPANY', 1, 0) as has_write
  198. , IF(c.COLUMN_NAME = 'A_CLASSIFIED', 1, 0) as has_read
  199. , IF(c.COLUMN_NAME = 'L_APPOITMENT_USER', 1, 0) as has_owner
  200. from information_schema.COLUMNS c
  201. where c.TABLE_SCHEMA = 'SES_USERS2'
  202. and c.COLUMN_NAME in ('A_ADM_COMPANY', 'A_CLASSIFIED', 'L_APPOITMENT_USER')
  203. ON DUPLICATE KEY UPDATE
  204. has_write = has_write + IF(c.COLUMN_NAME = 'A_ADM_COMPANY', 1, 0),
  205. has_read = has_read + IF(c.COLUMN_NAME = 'A_CLASSIFIED', 1, 0),
  206. has_owner = has_owner + IF(c.COLUMN_NAME = 'L_APPOITMENT_USER', 1, 0)
  207. ");
  208. DB::getPDO()->execSql("
  209. update `CRM_#CACHE_ACL_OBJECT` c
  210. join `tmp_cache_acl_group_fields` t on (t.table_name = c._rootTableName)
  211. set
  212. c.hasWriteGroupField = t.has_write,
  213. c.hasReadGroupField = t.has_read,
  214. c.hasOwnerField = t.has_owner
  215. ");
  216. }
  217. static function _getSystemObjectFieldDBVersion() {
  218. return (int)DB::getPDO()->fetchValue(" select `CONF_VAL` from `CRM_CONFIG` where `CONF_KEY` = 'Schema_SystemObjectFieldStorageAcl__version' ");
  219. }
  220. static function _updateSystemObjectFieldDBVersion($version) {
  221. DB::getPDO()->execSql(" REPLACE INTO CRM_CONFIG (`CONF_KEY`,`CONF_VAL`) VALUES ('Schema_SystemObjectFieldStorageAcl__version', '{$version}') ");
  222. }
  223. static function _fixSystemObjectFieldDatabaseSchema() {
  224. $version = self::_getSystemObjectFieldDBVersion();
  225. if ($version < 2) {
  226. DBG::log("UPDATE Schema_SystemObjectFieldStorageAcl__version");
  227. DB::getPDO()->execSql("
  228. create table if not exists `CRM_#CACHE_ACL_OBJECT_FIELD` (
  229. `namespace` varchar(255) DEFAULT '',
  230. `fieldNamespace` varchar(255) DEFAULT '',
  231. `idZasob` int(11) DEFAULT NULL,
  232. `idDatabase` int(11) NOT NULL,
  233. `_rootTableName` varchar(255) DEFAULT '',
  234. `objectNamespace` varchar(255) DEFAULT '',
  235. `xsdType` varchar(255) DEFAULT '',
  236. `xsdRestrictions` varchar(1000) DEFAULT '',
  237. `appInfo` varchar(1000) DEFAULT '',
  238. `minOccurs` int(11) DEFAULT '0',
  239. `maxOccurs` varchar(11) DEFAULT '1' COMMENT '0..unbounded',
  240. `isActive` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'installed',
  241. `description` varchar(255) DEFAULT '',
  242. `isLocal` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'is in _rootTableName',
  243. `sortPrio` int(11) NOT NULL DEFAULT 0,
  244. UNIQUE KEY `idZasob` (idZasob),
  245. PRIMARY KEY (`namespace`),
  246. KEY `isActive` (isActive)
  247. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  248. ");
  249. try {
  250. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD` ADD `appInfo` VARCHAR(1000) NOT NULL DEFAULT '' AFTER `xsdRestrictions` ");
  251. } catch (Exception $e) {
  252. DBG::log($e);
  253. }
  254. try {
  255. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD` ADD `isLocal` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'is in _rootTableName' AFTER `description` ");
  256. } catch (Exception $e) {
  257. DBG::log($e);
  258. }
  259. try {
  260. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD` ADD `sortPrio` int(11) NOT NULL DEFAULT 0 AFTER `isLocal` ");
  261. DB::getPDO()->execSql("
  262. UPDATE `CRM_#CACHE_ACL_OBJECT_FIELD`
  263. SET sortPrio = idZasob
  264. WHERE idZasob > 0
  265. ");
  266. DB::getPDO()->execSql("
  267. UPDATE `CRM_#CACHE_ACL_OBJECT_FIELD` c
  268. LEFT JOIN `CRM_LISTA_ZASOBOW` z on ( z.ID = c.idZasob )
  269. SET c.sortPrio = z.SORT_PRIO
  270. WHERE c.idZasob > 0
  271. and z.ID is not null
  272. ");
  273. } catch (Exception $e) {
  274. DBG::log($e);
  275. }
  276. DB::getPDO()->execSql("
  277. create table if not exists `CRM_#CACHE_ACL_OBJECT_FIELD_enum` (
  278. `namespace` varchar(255) DEFAULT '' COMMENT 'concat obj ns / field ns / value',
  279. `fieldNamespace` varchar(255) DEFAULT '',
  280. `objectNamespace` varchar(255) DEFAULT '',
  281. `value` varchar(255) DEFAULT '',
  282. `label` varchar(255) DEFAULT '',
  283. `isActive` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'installed',
  284. `sortPrio` tinyint NOT NULL DEFAULT 0,
  285. KEY `objectNamespace` (`objectNamespace`),
  286. KEY `fieldNamespace` (`fieldNamespace`),
  287. KEY `isActive` (isActive),
  288. UNIQUE `enum_uniq_value` (`objectNamespace`, `fieldNamespace`, `value`, `isActive`)
  289. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  290. ");
  291. try {
  292. DB::getPDO()->execSql(" DELETE from `CRM_#CACHE_ACL_OBJECT_FIELD_enum` where isActive = 0 ");
  293. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD_enum` ADD UNIQUE `enum_uniq_value` (`objectNamespace`, `fieldNamespace`, `value`, `isActive`) ");
  294. } catch (Exception $e) {
  295. DBG::log($e);
  296. }
  297. try {
  298. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD_enum` ADD `sortPrio` tinyint NOT NULL DEFAULT 0 ");
  299. } catch (Exception $e) {
  300. DBG::log($e);
  301. }
  302. self::_updateSystemObjectFieldDBVersion(self::$SYSTEM_OBJECT_FIELD_DB_SCHEMA_VERSION);
  303. }
  304. // if ($version < $SYSTEM_OBJECT_FIELD_DB_SCHEMA_VERSION) {
  305. //
  306. // }
  307. }
  308. static function _createInstanceConfigTable() {
  309. DB::getPDO()->execSql("
  310. create table if not exists `CRM_INSTANCE_CONFIG` (
  311. `id` int(11) not null AUTO_INCREMENT,
  312. `namespace` varchar(255) NOT NULL DEFAULT '',
  313. `rootNamespace` varchar(255) NOT NULL DEFAULT '',
  314. `idInstanceBase` int(11) NOT NULL DEFAULT 0,
  315. `_createdAt` datetime NOT NULL,
  316. `SOURCE` enum('table', 'view') not null default 'table',
  317. `VERSION` int(11) not null default 0,
  318. UNIQUE KEY `namespace` (`namespace`),
  319. KEY `rootNamespace` (`rootNamespace`),
  320. PRIMARY KEY (`id`)
  321. ) ENGINE=MyISAM DEFAULT CHARSET=latin2
  322. ");
  323. }
  324. static function _upgradeFrom4To5() {
  325. try {
  326. DB::getPDO()->execSql(" ALTER TABLE `CRM_INSTANCE_CONFIG` ADD `SOURCE` enum('table', 'view') not null default 'table' ");
  327. } catch (Exception $e) {
  328. DBG::log($e);
  329. }
  330. try {
  331. DB::getPDO()->execSql(" ALTER TABLE `CRM_INSTANCE_CONFIG` ADD `VERSION` int(11) not null default 0 ");
  332. } catch (Exception $e) {
  333. DBG::log($e);
  334. }
  335. }
  336. static function _upgradeFrom5To6() {
  337. try {
  338. DB::getPDO()->execSql(" ALTER TABLE `CRM_INSTANCE_CONFIG` ADD `A_STATUS` enum('WAITING', 'NORMAL', 'DELETED') NOT NULL DEFAULT 'WAITING' ");
  339. } catch (Exception $e) {
  340. DBG::log($e);
  341. }
  342. }
  343. static function _upgradeFrom6To7() {
  344. try {
  345. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `instanceTableSource` enum('table', 'view') not null default 'view' ");
  346. } catch (Exception $e) {
  347. DBG::log($e);
  348. }
  349. }
  350. static function _upgradeFrom7To8() {
  351. try {
  352. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD` CHANGE `xsdRestrictions` `xsdRestrictions` text default null ");
  353. } catch (Exception $e) {
  354. DBG::log($e);
  355. }
  356. try {
  357. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT_FIELD` CHANGE `appInfo` `appInfo` text default null ");
  358. } catch (Exception $e) {
  359. DBG::log($e);
  360. }
  361. try {
  362. DB::getPDO()->execSql(" ALTER TABLE `CRM_#CACHE_ACL_OBJECT` ADD `appInfo` text default null ");
  363. } catch (Exception $e) {
  364. DBG::log($e);
  365. }
  366. }
  367. static function _upgradeFrom8To9() { //smieci na Rozdzielczych i Projektach
  368. try {
  369. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Kabel_Swiatlowodowy_wsg84_AFTER_INSERT` ");
  370. } catch (Exception $e) {
  371. DBG::log($e);
  372. }
  373. try {
  374. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Kabel_Swiatlowodowy_wsg84_AFTER_UPDATE` ");
  375. } catch (Exception $e) {
  376. DBG::log($e);
  377. }
  378. try {
  379. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Mikrokanalizacja_do_klienta_AFTER_INSERT` ");
  380. } catch (Exception $e) {
  381. DBG::log($e);
  382. }
  383. try {
  384. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Mikrokanalizacja_do_klienta_AFTER_UPDATE` ");
  385. } catch (Exception $e) {
  386. DBG::log($e);
  387. }
  388. try {
  389. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Przeciski_110mm_AFTER_INSERT` ");
  390. } catch (Exception $e) {
  391. DBG::log($e);
  392. }
  393. try {
  394. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Przeciski_110mm_AFTER_UPDATE` ");
  395. } catch (Exception $e) {
  396. DBG::log($e);
  397. }
  398. try {
  399. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Przeciski_110mm_AFTER_INSERT` ");
  400. } catch (Exception $e) {
  401. DBG::log($e);
  402. }
  403. try {
  404. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Przeciski_110mm_AFTER_UPDATE` ");
  405. } catch (Exception $e) {
  406. DBG::log($e);
  407. }
  408. try {
  409. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_rurociag_wsg84_AFTER_UPDATE` ");
  410. } catch (Exception $e) {
  411. DBG::log($e);
  412. }
  413. try {
  414. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_rurociag_wsg84_AFTER_INSERT` ");
  415. } catch (Exception $e) {
  416. DBG::log($e);
  417. }
  418. try {
  419. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_wezly_AFTER_INSERT` ");
  420. } catch (Exception $e) {
  421. DBG::log($e);
  422. }
  423. try {
  424. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_wezly_AFTER_UPDATE` ");
  425. } catch (Exception $e) {
  426. DBG::log($e);
  427. }
  428. try {
  429. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Wykop_przedmiar_na_mikrorurki_AFTER_INSERT` ");
  430. } catch (Exception $e) {
  431. DBG::log($e);
  432. }
  433. try {
  434. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Wykop_przedmiar_na_mikrorurki_AFTER_UPDATE` ");
  435. } catch (Exception $e) {
  436. DBG::log($e);
  437. }
  438. try {
  439. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Zabruki_AFTER_INSERT` ");
  440. } catch (Exception $e) {
  441. DBG::log($e);
  442. }
  443. try {
  444. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Zabruki_AFTER_UPDATE` ");
  445. } catch (Exception $e) {
  446. DBG::log($e);
  447. }
  448. try {
  449. DB::getPDO()->execSql(" DROP TRIGGER IF EXISTS `Rozdzielcza_Zabruki_AFTER_INSERT` ");
  450. } catch (Exception $e) {
  451. DBG::log($e);
  452. }
  453. try {
  454. DB::getPDO()->execSql("DROP TRIGGER IF EXISTS `Rozdzielcza_Zabruki_AFTER_UPDATE` ");
  455. } catch (Exception $e) {
  456. DBG::log($e);
  457. }
  458. try {
  459. DB::getPDO()->execSql("ALTER TABLE `IN7_MK_BAZA_DYSTRYBUCJI`
  460. DROP `koszt_wspolny`,
  461. DROP `koszt_na_budynek`,
  462. DROP `koszt_na_mieszkanie`,
  463. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_ilosc`,
  464. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_cena`,
  465. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_koszt`,
  466. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_ilosc`,
  467. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_cena`,
  468. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_koszt`,
  469. DROP `Agr_metrow_mikrorurek_5szt`,
  470. DROP `Agr_metrow_mikrorurek_5szt_cena`,
  471. DROP `Agr_Rozdzielcza_Przeciski_110mm_ilosc`,
  472. DROP `Agr_Rozdzielcza_Przeciski_110mm_cena`,
  473. DROP `Agr_Rozdzielcza_Przeciski_110mm_koszt`,
  474. DROP `Agr_Rozdzielcza_Zabruki_ilosc`,
  475. DROP `Agr_Rozdzielcza_Zabruki_cena`,
  476. DROP `Agr_Rozdzielcza_Zabruki_koszt`,
  477. DROP `Agr_Rozdzielcza_wezly_ilosc`,
  478. DROP `Agr_Rozdzielcza_wezly_cena`,
  479. DROP `Agr_Rozdzielcza_wezly_koszt`,
  480. DROP `Agr_Rozdzielcza_koszty_dodatkowe_wsg84`,
  481. DROP `Agr_Rozdzielcza_rurociag_wsg84_ilosc`,
  482. DROP `Agr_Rozdzielcza_rurociag_wsg84_cena`,
  483. DROP `Agr_Rozdzielcza_rurociag_wsg84_koszt`,
  484. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_ilosc`,
  485. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_cena`,
  486. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt`,
  487. DROP `Agr_USERS2_MARKETING_ilosc`,
  488. DROP `Agr_USERS2_MARKETING_cena`,
  489. DROP `Agr_USERS2_MARKETING_koszt`,
  490. DROP `Agr_BUILDINGS_ilosc`;
  491. ");
  492. } catch (Exception $e) {
  493. DBG::log($e);
  494. }
  495. try {
  496. DB::getPDO()->execSql("ALTER TABLE `IN7_MK_BAZA_DYSTRYBUCJI_HIST`
  497. DROP `koszt_wspolny`,
  498. DROP `koszt_na_budynek`,
  499. DROP `koszt_na_mieszkanie`,
  500. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_ilosc`,
  501. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_cena`,
  502. DROP `Agr_Rozdzielcza_Wykop_przedmiar_na_mikrorurki_koszt`,
  503. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_ilosc`,
  504. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_cena`,
  505. DROP `Agr_Rozdzielcza_Mikrokanalizacja_do_klienta_koszt`,
  506. DROP `Agr_metrow_mikrorurek_5szt`,
  507. DROP `Agr_metrow_mikrorurek_5szt_cena`,
  508. DROP `Agr_Rozdzielcza_Przeciski_110mm_ilosc`,
  509. DROP `Agr_Rozdzielcza_Przeciski_110mm_cena`,
  510. DROP `Agr_Rozdzielcza_Przeciski_110mm_koszt`,
  511. DROP `Agr_Rozdzielcza_Zabruki_ilosc`,
  512. DROP `Agr_Rozdzielcza_Zabruki_cena`,
  513. DROP `Agr_Rozdzielcza_Zabruki_koszt`,
  514. DROP `Agr_Rozdzielcza_wezly_ilosc`,
  515. DROP `Agr_Rozdzielcza_wezly_cena`,
  516. DROP `Agr_Rozdzielcza_wezly_koszt`,
  517. DROP `Agr_Rozdzielcza_koszty_dodatkowe_wsg84`,
  518. DROP `Agr_Rozdzielcza_rurociag_wsg84_ilosc`,
  519. DROP `Agr_Rozdzielcza_rurociag_wsg84_cena`,
  520. DROP `Agr_Rozdzielcza_rurociag_wsg84_koszt`,
  521. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_ilosc`,
  522. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_cena`,
  523. DROP `Agr_Rozdzielcza_Kabel_Swiatlowodowy_wsg84_koszt`,
  524. DROP `Agr_USERS2_MARKETING_ilosc`,
  525. DROP `Agr_USERS2_MARKETING_cena`,
  526. DROP `Agr_USERS2_MARKETING_koszt`,
  527. DROP `Agr_BUILDINGS_ilosc`;
  528. ");
  529. } catch (Exception $e) {
  530. DBG::log($e);
  531. }
  532. try {
  533. DB::getPDO()->execSql("ALTER TABLE `IN7_MK_BAZA_DYSTRYBUCJI` CHANGE `M_DIST_TYPE` `M_DIST_TYPE` ENUM('ROI__INWESTYCJA_INSTALACJA_KABLA_W_STUDNIACH_TP','TV__UMOWA ZAKUPU KANALU','TV__UMOWA ZBIORCZA ZAKUPU KANALOW','DRUK_REKLAMY','WPIS_W_WWW','ARTYKUL_FREE','ARTYKUL','NEWS_FREE','WPIS_DO_OBCEGO_KATALOGU','TARGI','INWESTYCJA BUDOWA SIECI','INWEST_22154_OPL_ROCZNA','INWEST_22165_PRZETARG','INWEST_22169_UMOWA','INWEST_BUD_PRZYL_21699_PLAN','INWEST_BUD_PRZYL_21699_DO_PROJ','INWEST_BUD_PRZYL_21699_DO_ZLECENIA','INWEST_BUD_PRZYL_21699_ZLECONE','INWEST_BUD_PRZYL_21699_WYKONANE','OBSLUGA UMOWY L2','ADM OBSLUGA UMOWY KOSZTOWEJ','ZASOB OPROGRAMOWANIE LICENCJA GWARANCJA URZADZENIE','IN__INWESTYCJA BUDOWA','IN__ZAJECIA_NIERUCHOMOSCI','MZ__ZASOB_NARZEDZIE_MARKETINGOWE','ADM2p2__OBSLUGA_SAMOCHODU_FIRMOWEGO','VOIP_ADM_UMOWA_WYMIANY_RUCHU_GLOSOWEGO','WWW_AKTUALNOSCI','WWW_AKTUALNOSCI_TV','WWW_PRACA','WWW_DOKUMENTY','WWW_PROGRAM_TV','INNE','PROJEKT','UMOWA SEZ','UMOWA SEW/SEZ','UMOWA','ZADANIE','STRATEGIA','UCHWALA','KONFERENCJA','INNY','MK__HANDL_WYDARZENIE','MK__MIEJSCE_REKLAMOWE','KADRY','KSIEGOWOSC','UBEZPIECZENIE_SAMOCHODU_AC_OC','UBEZPIECZENIE_SAMOCHODU_OC','umowa_na_umieszczanie_ogloszen_rekrutacyjnych','UMOWA_NA_WYWOZ_ODPADOW','REKRUTACJA','ZAKUP_AUTA','UBEZPIECZENIE_MIENIA','UMOWA_NA_SYSTEM_MONITORINGU_FLOTY_AUT','ZAKUP_URZADZEN_DO_USLUG','WSPOLPRACA_Z_KLIENTEM','UMOWA_KOSZTOWA','Ubezpieczenie_OC_Dzialalnosci_Gospodarczej','IN__DECYCJA_ZAJECIA_PASA',
  534. 'TV__UMOWA_ZAKUPU_KANALU','TV__UMOWA_ZBIORCZA_ZAKUPU_KANALOW','INWESTYCJA_BUDOWA_SIECI','OBSLUGA_UMOWY_L2','ADM_OBSLUGA_UMOWY_KOSZTOWEJ','ZASOB_OPROGRAMOWANIE_LICENCJA_GWARANCJA_URZADZENIE','UMOWA_SEZ','UMOWA_SEW_SEZ')
  535. NULL DEFAULT NULL;");
  536. } catch (Exception $e) {
  537. DBG::log($e);
  538. }
  539. try {
  540. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='OBSLUGA_UMOWY_L2' where `M_DIST_TYPE`='OBSLUGA UMOWY L2';");
  541. } catch (Exception $e) {
  542. DBG::log($e);
  543. }
  544. try {
  545. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='UMOWA_SEW_SEZ' where `M_DIST_TYPE`='UMOWA SEW/SEZ';");
  546. } catch (Exception $e) {
  547. DBG::log($e);
  548. }
  549. try {
  550. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='UMOWA_SEZ' where `M_DIST_TYPE`='UMOWA SEZ';");
  551. } catch (Exception $e) {
  552. DBG::log($e);
  553. }
  554. try {
  555. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='ZASOB_OPROGRAMOWANIE_LICENCJA_GWARANCJA_URZADZENIE' where `M_DIST_TYPE`='ZASOB OPROGRAMOWANIE LICENCJA GWARANCJA URZADZENIE';");
  556. } catch (Exception $e) {
  557. DBG::log($e);
  558. }
  559. try {
  560. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='ADM_OBSLUGA_UMOWY_KOSZTOWEJ' where `M_DIST_TYPE`='ADM OBSLUGA UMOWY KOSZTOWEJ';");
  561. } catch (Exception $e) {
  562. DBG::log($e);
  563. }
  564. try {
  565. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='TV__UMOWA_ZAKUPU_KANALU' where `M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU';");
  566. } catch (Exception $e) {
  567. DBG::log($e);
  568. }
  569. try {
  570. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='TV__UMOWA_ZBIORCZA_ZAKUPU_KANALOW' where `M_DIST_TYPE`='TV__UMOWA ZAKUPU KANALU';");
  571. } catch (Exception $e) {
  572. DBG::log($e);
  573. }
  574. try {
  575. DB::getPDO()->execSql("update `IN7_MK_BAZA_DYSTRYBUCJI` set `M_DIST_TYPE`='INWESTYCJA_BUDOWA_SIECI' where `M_DIST_TYPE`='IN__INWESTYCJA BUDOWA';");
  576. } catch (Exception $e) {
  577. DBG::log($e);
  578. }
  579. }
  580. static function _upgradeFrom9To10() {
  581. try {
  582. DB::getPDO()->execSql("ALTER TABLE `IN7_MK_BAZA_DYSTRYBUCJI` CHANGE `M_DIST_TYPE` `M_DIST_TYPE` ENUM('ROI__INWESTYCJA_INSTALACJA_KABLA_W_STUDNIACH_TP','DRUK_REKLAMY','WPIS_W_WWW','ARTYKUL_FREE','ARTYKUL','NEWS_FREE','WPIS_DO_OBCEGO_KATALOGU','TARGI','INWEST_22154_OPL_ROCZNA','INWEST_22165_PRZETARG','INWEST_22169_UMOWA','INWEST_BUD_PRZYL_21699_PLAN','INWEST_BUD_PRZYL_21699_DO_PROJ','INWEST_BUD_PRZYL_21699_DO_ZLECENIA','INWEST_BUD_PRZYL_21699_ZLECONE','INWEST_BUD_PRZYL_21699_WYKONANE','OBSLUGA_UMOWY_L2','ADM_OBSLUGA_UMOWY_KOSZTOWEJ','ZASOB_OPROGRAMOWANIE_LICENCJA_GWARANCJA_URZADZENIE','IN__ZAJECIA_NIERUCHOMOSCI','MZ__ZASOB_NARZEDZIE_MARKETINGOWE','ADM2p2__OBSLUGA_SAMOCHODU_FIRMOWEGO','VOIP_ADM_UMOWA_WYMIANY_RUCHU_GLOSOWEGO','WWW_AKTUALNOSCI','WWW_AKTUALNOSCI_TV','WWW_PRACA','WWW_DOKUMENTY','WWW_PROGRAM_TV','INNE','PROJEKT','UMOWA_SEW_SEZ','UMOWA_SEZ','UMOWA','ZADANIE','STRATEGIA','UCHWALA','KONFERENCJA','INNY','MK__HANDL_WYDARZENIE','MK__MIEJSCE_REKLAMOWE','KADRY','KSIEGOWOSC','UBEZPIECZENIE_SAMOCHODU_AC_OC','UBEZPIECZENIE_SAMOCHODU_OC','umowa_na_umieszczanie_ogloszen_rekrutacyjnych','UMOWA_NA_WYWOZ_ODPADOW','REKRUTACJA','ZAKUP_AUTA','UBEZPIECZENIE_MIENIA','UMOWA_NA_SYSTEM_MONITORINGU_FLOTY_AUT','ZAKUP_URZADZEN_DO_USLUG','WSPOLPRACA_Z_KLIENTEM','UMOWA_KOSZTOWA','Ubezpieczenie_OC_Dzialalnosci_Gospodarczej','IN__DECYCJA_ZAJECIA_PASA','TV__UMOWA_ZAKUPU_KANALU','TV__UMOWA_ZBIORCZA_ZAKUPU_KANALOW','INWESTYCJA_BUDOWA_SIECI') NULL DEFAULT NULL;");
  583. } catch (Exception $e) {
  584. DBG::log($e);
  585. }
  586. }
  587. // static function _upgradeFrom8To9() {
  588. // }
  589. }