~~Title:Cobub Razor V5-v6升级手册 - 开源移动应用运营平台 - 移动统计、移动推送解决方案 - Cobub 移动开发者中心~~ {{description>Cobub Razor V5-v6升级手册}} {{keywords>Cobub Razor,开源移动应用分析,移动分析,移动应用分析,升级手册}} ====== V5-v6升级手册 ====== Cobub Razor从版本0.5升级到版本0.6,具体需要如下步骤: ===== 步骤一: 下载V0.6版本最新代码 ===== 1、从 [[https://github.com/cobub/razor|https://github.com/cobub/razor]] 下载0.6版本的代码,得到razor-master.zip压缩包,将其解压得到razor-master文件夹,里面包含sdk和web文件夹等。 2、将上面的 web 文件夹复制你准备升级部署网站的web目录下(注意复制前 web 名称不能与前几个版本的名称相同)。为了方便调试,你可以将”web”修改成”razor_v6″,并将里面的application文件夹下的config.php文件中的$config['base_url']= ‘http://yoururl/razor_v6′。 3、将0.5版本的application\config\目录下的文件autoload.php、database.php复制到0.6版本的application\config\目录下,覆盖0.6版本的这两个文件,并把0.6版本里的routes.php文件中的$route['default_controller'] = “install/installation” 修改成 $route['default_controller'] = “report/home”。 ===== 步骤二: 准备修改数据库和数据仓库的脚本文件 ===== 这里假设你的数据库为 razor ,数据仓库为 razordw ,数据库和数据仓库中的表前缀均为 **umsinstall_** 。 ====== 1、修改数据库 ====== ===== 1.1、增加表 ===== 1)新增表 **getui_product** ^属性名称 ^属性值 ^索引 ^ |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语句(注意修改表前缀umsinstall_,下同):** 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** ^属性名称 ^属性值 ^索引^ |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** ^属性名称 ^属性值 ^索引^ |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** ^属性名称 ^属性值 ^索引^ |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; ===== 1.2、修改表 ===== 1)修改表 **channel_product** ^属性名称 ^属性值 ^变化^ |description |varchar(5000) |NOT NULL-> DEFAULT NULL| **sql语句:** ALTER TABLE `razor.umsinstall_channel_product` CHANGE `description` `description` VARCHAR(5000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL; 2)修改表 **eventdata** ^属性名称 ^属性值 ^变化^ |deviceid |varchar(50) |NOT NULL -> DEFAULT NULL| |category |varchar(50) |NOT NULL -> DEFAULT NULL| |event |varchar(50) |NOT NULL -> DEFAULT NULL| |label |varchar(50) |NOT NULL -> DEFAULT NULL| |attachment |varchar(50) |NOT NULL -> DEFAULT NULL| **sql语句:** ALTER TABLE `razor.umsinstall_eventdata` CHANGE `deviceid` `deviceid` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL; **注:其他列category,event,label,attachment类似方法修改。** 3)修改表 **markevent** ^属性名称 ^属性值 ^变化^ |productid |int(50) |NOT NULL -> NOT NULL DEFAULT ‘-1′| **sql语句:** ALTER TABLE `razor.umsinstall_markevent` CHANGE `productid` `productid` INT( 50 ) NOT NULL DEFAULT '-1'; 4)修改表** reportlayout** ^属性名称 ^属性值 ^变化^ |method |varchar(45) |NOT NULL -> DEFAULT ‘ ‘| **sql语句:** ALTER TABLE `razor.umsinstall_reportlayout` CHANGE `method` `method` VARCHAR(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' '; ====== 2、修改数据仓库 ====== ===== 2.1、新增表 ===== 1)新增表 **sum_reserveusers_daily** ^属性名称 ^属性值 ^索引^ |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 `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、修改表 ===== 1)修改表 **fact_event** ^属性名称 ^属性值 ^变化^ |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; 注:其他列类似。 2)修改表 **log** ^属性名称 ^属性值 ^变化^ |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; 注:其他列类似。 新增属性名称为op_starttime,属性值为datetime DEFAULT NULL。 **sql语句:** ALTER TABLE `razordw.umsinstall_log` ADD COLUMN `op_starttime` datetime DEFAULT NULL; 3)修改表 **fact_reserveusers_monthly** 修改表名 **fact_reserveusers_monthly** 为 **sum_reserveusers_monthly**; **sql语句:** RENAME TABLE `razordw.umsinstall_fact_reserveusers_monthly` TO `razordw.umsinstall_sum_reserveusers_monthly`; 新增属性名称channel_name,属性值为 varchar(128) NOT NULL; **sql语句:** ALTER TABLE `razordw.umsinstall_sum_reserveusers_monthly` ADD COLUMN `channel_name` varchar(128) NOT NULL; 联合唯一键由 UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`) 修改为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** 修改表名 **fact_reserveusers_weekly** 为 **sum_reserveusers_weekly**; **sql语句:** RENAME TABLE `razordw.umsinstall_fact_reserveusers_weekly` TO `razordw.umsinstall_sum_reserveusers_weekly`; 新增属性名称channel_name,属性值为 varchar(128) NOT NULL; **sql语句:** ALTER TABLE `razordw.umsinstall_sum_reserveusers_weekly` ADD COLUMN `channel_name` varchar(128) NOT NULL; 联合唯一键由 UNIQUE KEY `startdate_sk` (`startdate_sk`,`enddate_sk`,`product_id`,`version_name`) 修改为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、修改存储过程 ====== 修改存储过程 **rundaily** 、 **rundim** 、 **runfact** 、 **runmonthly** 、 **runsum** 和 **runweekly** 。 步骤: 步骤一:下载新的v0.6版本的代码,目录assets\sql下的存储过程有 sp_rundaily.sql 、 sp_rundim.sql 、 sp_runfact.sql 、 sp_runmonthly.sql 、 sp_runsum.sql和 sp_runweekly.sql 。 步骤二:修改表前缀名,将各个存储过程中的umsinstall_修改为你数据仓库中的表前缀名,如你的数据仓库中的表前缀为”razordw_”;另外将其中的“databaseprefix.umsdatainstall_”换成“数据库名称.基础数据库前缀”,如你的数据库名称为cobubrazor,数据库表前缀为razor_,则修改为“cobubrazor.razor_”。 步骤三: 暂停数据库的数据插入和及数据仓库中的抽数过程。 暂时停止前请先准备好相关的SQL脚本(即步骤二中生成的相关脚本)。 步骤四: 删除数据仓库中所有存储过程。 步骤五: 执行步骤二中生成的相关sql脚本。 执行相关脚本前,请先备份一下数据库和数据仓库中的数据。 步骤六:重新启动数据库和数据仓库。 重启数据库和数据仓库前,请先将步骤一中的第2步中以前版本的“web”目录备份,命名为web-backup0.5,存储在合适的地方,删除“web”。然后将“razor_v6”修改成“web”(以前的版本的名称),并修改config.php文件的$config['base_url']= ‘http://yoururl/web’。