~~Title:Cobub Razor Upgrade Instruction (v0.7.1 to v0.7.2) - Mobile Apps Marketing Platform of Open Source - Mobile Analytics & Mobile Push Notification Solutions - Cobub Mobile Developer Center~~ {{description>Cobub Razor is an Open Source Mobile Analytics. When you are ready to upgrade Cobub Razor from version 0.7.1 to version 0.7.2, following steps is required:.}} {{keywords>Cobub Razor,open source mobile analytics,mobile analytics,mobile app analytics, upgrade}} ====== Upgrade Instruction (v0.7.1 to v0.7.2) ====== When you are ready to upgrade Cobub Razor from version 0.7.1 to version 0.7.2, following steps is required: ===== Step one: download the code of V0.7.2 ===== 1、Download the code of version 0.7.2 from https://github.com/cobub/razor , and you can get the razor-master.zip, unzip it to get razor-master folder, which contains the sdk and web folders. 2、Copy the **web** folder to the directory of your web site where you are ready to upgrade Cobub Razor (Note: web can not be the same name with Cobub Razor’s name of V0.7.1 or V0.7.2 ). To facilitate debugging, you can rename ”web” to “razor_v7.2“, and set the $ config ['base_url'] value to the ‘http://yoururl/razor_v7.2 ‘ in **config.php** which is under the **application** folder. 3、Copy the **autoload.php** and **database.php** of V0.7.1 under the directory of **application\config\** to the diretory of **application\config\** of V0.7.2, override these two files of V0.7.2, and replace $route['default_controller'] = “install/installation” to $route['default_controller'] = “report/home” of V0.7.2 in **routes.php**. ===== Step two: modify script files of database and data warehouse ===== Here, assume that your database is razor and data warehouse is razordw, and umsinstall_ is the table prefix of them. ==== 1、Modify database ==== 1)**ci_sessions** ^property name ^property value ^changes^ |ip_address |varchar(45) |varchar(16)-> varchar(45)| **sql** ALTER TABLE `razor.umsinstall_ci_sessions` CHANGE `ip_address` `ip_address` varchar(45); 2)**clientdata** ^property name ^property value ^changes^ |salt |varchar(64) |added| property `insertdate` adds index.**(Attention:If the table has large datas, the execution time may be longe.)** **sql** ALTER TABLE `razor.umsinstall_clientdata` ADD COLUMN `salt` varchar(64) DEFAULT NULL,INDEX(`insertdate`); 3) **clientusinglog** property `insertdate`adds index. **sql** ALTER TABLE `razor.umsinstall_clientusinglog` ADD INDEX(`insertdate`); 4)**errorlog** property `insertdate`adds index. **sql** ALTER TABLE `razor.umsinstall_errorlog` ADD INDEX(`insertdate`); 5)**eventdata** property `insertdate`adds index. **sql语句:** ALTER TABLE `razor.umsinstall_eventdata` ADD INDEX(`insertdate`); 6) **device_tag** ^property name ^property value ^changes^ |appkey |varchar(64) |productkey->appkey| **sql** ALTER TABLE `razor.umsinstall_device_tag` CHANGE `productkey` `appkey` varchar(64); ==== 2、Modify the data warehouse ==== === 2.1、Add tables === 1)**sum_location** ^property name ^property value ^index ^ |lid |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY| |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |location_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_location` ( `lid` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `location_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`lid`), UNIQUE KEY `index_location` (`product_id`,`date_sk`,`location_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 2)**sum_devicebrand** ^property name ^property value ^index^ |did |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY| |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |devicebrand_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_devicebrand` ( `did` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `devicebrand_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`did`), UNIQUE KEY `index_devicebrand` (`product_id`,`date_sk`,`devicebrand_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 3)**sum_deviceos** ^property name ^property value ^index^ |did |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY| |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |deviceos_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_deviceos` ( `did` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `deviceos_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`did`), UNIQUE KEY `index_deviceos`(`product_id`,`date_sk`,`deviceos_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 4) **sum_deviceresolution** ^property name ^property value ^index^ |did |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY | |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |deviceresolution_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_deviceresolution` ( `did` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `deviceresolution_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`did`), UNIQUE KEY 'index_deviceresolution'(`product_id`,`date_sk`,`deviceresolution_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 5)**sum_devicesupplier** ^property name ^property value ^index^ |did |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY| |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |devicesupplier_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sq语句:** CREATE TABLE `razor.umsinstall_sum_devicesupplier` ( `did` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `devicesupplier_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`did`), UNIQUE KEY `index_devicesupplier`(`product_id`,`date_sk`,`devicesupplier_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 6)**sum_devicenetwork** ^property name ^property value ^index^ |did |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY | |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |devicenetwork_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_devicenetwork` ( `did` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `devicenetwork_sk` int(11) NOT NULL, `sessions` int(11) NOT NULL DEFAULT '0', `newusers` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`did`), UNIQUE KEY `index_devicenetwork`(`product_id`,`date_sk`,`devicenetwork_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 7)**sum_event** ^property name ^property name ^index^ |eid |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY| |product_id |int(11) NOT NULL | | |date_sk |int(11) NOT NULL | | |event_sk |int(11) NOT NULL | | |sessions |int(11) NOT NULL DEFAULT '0' | | |newusers |int(11) NOT NULL DEFAULT '0' | | **sql** CREATE TABLE `razor.umsinstall_sum_event` ( `eid` int(11) NOT NULL AUTO_INCREMENT, `product_id` int(11) NOT NULL, `date_sk` int(11) NOT NULL, `event_sk` int(11) NOT NULL, `total` int(11) NOT NULL, PRIMARY KEY (`eid`), UNIQUE KEY `product_sk`(`product_id`,`date_sk`,`event_sk`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 8)**deviceid_userid** ^property name ^property name ^index^ |did |int(11) unsigned NOT NULL AUTO_INCREMENT |PRIMARY KEY| |deviceid |varchar(128) NOT NULL | | |userid |varchar(128) NOT NULL | | **sql** CREATE TABLE `razor.umsinstall_deviceid_userid` ( `did` int(11) NOT NULL AUTO_INCREMENT, `deviceid` varchar(128) NOT NULL, `userid ` varchar(128) NOT NULL, PRIMARY KEY (`did`), UNIQUE KEY `deviceid`(`deviceid`,`userid`), KEY `userid` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 9)**deviceid_pushid** ^property name ^property value ^index^ |did |int(11) unsigned NOT NULL AUTO_INCREMENT |PRIMARY KEY| |deviceid |varchar(128) NOT NULL | | |pushid |varchar(128) NOT NULL | | **sql** CREATE TABLE `razor.umsinstall_deviceid_pushid` ( `did` int(11) NOT NULL AUTO_INCREMENT, `deviceid` varchar(128) NOT NULL, `pushid` varchar(128) NOT NULL, PRIMARY KEY (`did`), UNIQUE KEY `deviceid`(`deviceid`,`pushid`) KEY `pushid` (`pushid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; ===== 2.2 Modify tables ===== 1)**dim_date** ^property name ^property name ^changes^ |datevalue | |Timestamp->Date| **sql** ALTER TABLE `razordw.umsinstall_dim_date` CHANGE `datevalue` `datevalue` DATE NOT NULL; 2)**dim_devicesupplier** ^property name ^property value ^changes^ |devicesupplier_name |varchar(128) |varchar(60)-> varchar(128)| **sql** ALTER TABLE `razordw.umsinstall_dim_devicesupplier` CHANGE `devicesupplier_name` `devicesupplier_name` varchar(128); 3) **fact_event** property `date_sk`add indexs **sql** ALTER TABLE `razordw.umsinstall_fact_event` ADD INDEX(`date_sk`,`product_sk`); 4)**dim_date** Delete datevalue data before January 1, 2015 in the table. **sql** DELETE FROM umsinstall_dim_date WHERE date_sk BETWEEN 1 AND 1827 ==== 3、Modify the stored procedures ==== Stored procedures: **rundaily** 、 **rundim** 、 **runfact** 、 **runmonthly** 、 **runsum** and **runweekly** 。 Steps: 1)you will get six sql script files under the directory of **assets\sql** of V0.7.2 : **sp_rundaily.sql** 、 **sp_rundim.sql** 、 **sp_runfact.sql** 、 **sp_runmonthly.sql** 、 **sp_runsum.sql** and **sp_runweekly.sql**. 2) modify table prefix Modify the **umsinstall_** in all sql scirpt files above to your own data warehouse’s table prefix, for example,your data warehouse table prefix “razordw_”; Replace the “databaseprefix.umsdatainstall_” to “database.database’s table prefix”, for example, your database is cobubrazor,and database’s table prefix is razor_,the ”databaseprefix.umsdatainstall_” should be “cobubrazor.razor_“. ===== Step three: stop inserting data to database and pause the stored procedures. ===== Note: you need to have prepared all the relevant SQL scripts(i.e. all sql scripts in Step two). ===== Step four: delete all stored procedures in data warehouse. ===== ===== Step five: execute the SQL scripts generated in Step two. ===== Note: Please backup the data of your database and data warehouse before you execute the sql scripts. ===== Step six:restart the database and data warehouse. ===== Before this step, you need to do the last thing : Backup the directory of the previous web site(e.g **web**,which is the root directory of version 0.7.1),store it in a suitable place and named web-backup0.7.1, then delete **web**. Change”razor_v7.2” to “web”(the name of V0.7.1),and set $config['base_url']= ‘http://yoururl/web’ in **config.php**.