~~Title:Cobub Razor Upgrade Instruction (v0.5 to v0.6) - 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.5 to version 0.6, following steps is required:.}}
{{keywords>Cobub Razor,open source mobile analytics,mobile analytics,mobile app analytics, upgrade}}
====== Upgrade Instruction (v0.5 to v0.6) ======
When you are ready to upgrade Cobub Razor from version 0.5 to version 0.6, following steps is required:
===== Step one: download the code of V0.6 =====
1、Download the code of version 0.6 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.4 or V0.5 ). To facilitate debugging, you can rename ”web” to “razor_v6“, and set the $ config ['base_url'] value to the ‘http://yoururl/razor_v6 ‘ in **config.php** which is under the **application** folder.
3、Copy the **autoload.php** and **database.php** of V0.5 under the directory of **application\config\** to the diretory of **application\config\** of V0.6, override these two files of V0.6, and replace $route['default_controller'] = “install/installation” to $route['default_controller'] = “report/home” of V0.6 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.1、Add tables ===
== 1) getui_product ==
^property name ^property value ^index ^
|id |int(11) NOT NULL AUTO_INCREMENT| PRIMARY KEY|
|product_id |int(11) DEFAULT NULL| |
|is_active |tinyint(4) DEFAULT NULL| |
|app_id |varchar(25) DEFAULT NULL| |
|user_id |int(8) DEFAULT NULL| |
|app_key |varchar(25) NOT NULL| |
|app_secret |varchar(25) NOT NULL| |
|app_mastersecret |varchar(25) NOT NULL| |
|app_identifier |varchar(25) NOT NULL| |
|activate_date |datetime NOT NULL| |
sql:
CREATE TABLE `razor.umsinstall_getui_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_id` int(11) DEFAULT NULL,
`is_active` tinyint(4) DEFAULT NULL,
`app_id` varchar(25) DEFAULT NULL,
`user_id` int(8) DEFAULT NULL,
`app_key` varchar(25) NOT NULL,
`app_secret` varchar(25) NOT NULL,
`app_mastersecret` varchar(25) NOT NULL,
`app_identifier` varchar(25) NOT NULL,
`activate_date` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
== 2)plugins ==
^property name ^property value ^index ^
|id |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY|
|identifier |varchar(50) NOT NULL| |
|user_id |int(50) NOT NULL| |
|status |int(10) NOT NULL| |
sql:
CREATE TABLE `razor.umsinstall_plugins` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`identifier` varchar(50) NOT NULL,
`user_id` int(50) NOT NULL,
`status` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
== 3)tag_group ==
^property name ^property value ^index^
|id |int(4) NOT NULL AUTO_INCREMENT |PRIMARY KEY|
|product_id |int(4) NOT NULL| |
|name |varchar(200) NOT NULL| |
|tags |varchar(5000) NOT NULL| |
|time |timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ||
sql:
CREATE TABLE `razor.umsinstall_tag_group` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`product_id` int(4) NOT NULL,
`name` varchar(200) NOT NULL,
`tags` varchar(5000) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
== 4) userkeys ==
^property name ^property value ^index^
|id |int(20) NOT NULL AUTO_INCREMENT| PRIMARY KEY|
|user_id |int(20) NOT NULL| |
|user_key |varchar(50) NOT NULL| |
|user_secret |varchar(50) NOT NULL| |
sql:
CREATE TABLE `umsinstall_userkeys` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`user_id` int(20) NOT NULL,
`user_key` varchar(50) NOT NULL,
`user_secret` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
==== 2、Modify the data warehouse ====
=== 2.1、Add tables ===
== 1)sum_reserveusers_daily ==
^property name ^property value ^index^
|rid |int(11) NOT NULL AUTO_INCREMENT |PRIMARY KEY|
|startdate_sk |int(11) NOT NULL|| |
|enddate_sk |int(11) NOT NULL| |
|product_id |int(11) NOT NULL| |
|version_name |varchar(128) NOT NULL| |
|channel_name |varchar(128) NOT NULL| |
|usercount |int(11) NOT NULL DEFAULT 0|
|day1 |int(11) NOT NULL DEFAULT 0| |
|day2 |int(11) NOT NULL DEFAULT 0| |
|day3 |int(11) NOT NULL DEFAULT 0| |
|day4 |int(11) NOT NULL DEFAULT 0| |
|day5 |int(11) NOT NULL DEFAULT 0| |
|day6 |int(11) NOT NULL DEFAULT 0| |
|day7 |int(11) NOT NULL DEFAULT 0| |
|day8 |int(11) NOT NULL DEFAULT 0| |
Unique key:
UNIQUE KEY `startdate_sk` (`startdate_sk`, `enddate_sk`, `product_id`, `version_name`, `channel_name`)
sql:
CREATE TABLE `razordw.umsinstall_sum_reserveusers_daily` (
`rid` int(11) NOT NULL AUTO_INCREMENT,
`startdate_sk` int(11) NOT NULL,
`enddate_sk` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`version_name` varchar(128) NOT NULL,
`channel_name` varchar(128) NOT NULL,
`usercount` int(11) NOT NULL DEFAULT 0,
`day1` int(11) NOT NULL DEFAULT 0,
`day2` int(11) NOT NULL DEFAULT 0,
`day3` int(11) NOT NULL DEFAULT 0,
`day4` int(11) NOT NULL DEFAULT 0,
`day5` int(11) NOT NULL DEFAULT 0,
`day6` int(11) NOT NULL DEFAULT 0,
`day7` int(11) NOT NULL DEFAULT 0,
`day8` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`rid`),
UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`,`channel_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
=== 2.2、Modify tables ===
== 1) fact_event ==
^property name ^property value ^changes^
|deviceid |varchar(50) |NOT NULL -> DEFAULT NULL|
|category |varchar(50) |NOT NULL -> DEFAULT NULL|
|label |varchar(50) |NOT NULL -> DEFAULT NULL|
|attachment |varchar(50) |NOT NULL -> DEFAULT NULL|
sql:
ALTER TABLE `razordw.umsinstall_fact_event` CHANGE `deviceid` `deviceid` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;
Note: Other columns are similar.
== 2)log ==
^property name ^property value ^changes^
|op_date |datetime |NOT NULL -> DEFAULT NULL|
|affected_rows |int(11) |NOT NULL -> DEFAULT NULL|
|duration |int(11) |NOT NULL -> DEFAULT NULL|
sql:
ALTER TABLE `razordw.umsinstall_log` CHANGE `op_date` `op_date` datetime DEFAULT NULL;
Note: Other columns are similar.
add:
property name:op_starttime
property value:datetime DEFAULT NULL
sql:
ALTER TABLE `razordw.umsinstall_log` ADD COLUMN `op_starttime` datetime DEFAULT NULL;
== 3)fact_reserveusers_monthly ==
Rename ‘**fact_reserveusers_monthly**’ to ‘**sum_reserveusers_monthly**`;
sql:
RENAME TABLE `razordw.umsinstall_fact_reserveusers_monthly` TO `razordw.umsinstall_sum_reserveusers_monthly`;
add:
property name:channel_name
property value:varchar(128) NOT NULL
sql:
ALTER TABLE `razordw.umsinstall_sum_reserveusers_monthly` ADD COLUMN `channel_name` varchar(128) NOT NULL;
modify unique key:
change UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`)
to UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`,`channel_name`).
sql:
ALTER TABLE `razordw.umsinstall_sum_reserveusers_monthly` ADD UNIQUE( `startdate_sk`, `enddate_sk`, `product_id`, `version_name`, `channel_name`);
== 4)fact_reserveusers_weekly ==
Rename ‘**fact_reserveusers_weekly**’ to ‘**sum_reserveusers_weekly**’.
sql:
RENAME TABLE `razordw.umsinstall_fact_reserveusers_weekly` TO `razordw.umsinstall_sum_reserveusers_weekly`;
add:
property name:channel_name
property value:varchar(128) NOT NULL
sql:
ALTER TABLE `razordw.umsinstall_sum_reserveusers_weekly` ADD COLUMN `channel_name` varchar(128) NOT NULL;
change UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`)
to UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`,`channel_name`).
sql:
ALTER TABLE `razordw.umsinstall_sum_reserveusers_weekly` ADD UNIQUE( `startdate_sk`, `enddate_sk`, `product_id`, `version_name`, `channel_name`);
==== 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.6 : **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.5),store it in a suitable place and named web-backup0.5, then delete **web**.
Change”razor_v6” to “web”(the name of V0.5),and set $config['base_url']= ‘http://yoururl/web’ in **config.php**.