目录

该文档适用于Cobub Razor 0.7版本。

V5-v6升级手册

Cobub Razor从版本0.5升级到版本0.6,具体需要如下步骤:

步骤一: 下载V0.6版本最新代码

1、从 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_monthlysum_reserveusers_monthlysql语句:

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_weeklysum_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、修改存储过程

修改存储过程 rundailyrundimrunfactrunmonthlyrunsumrunweekly

步骤: 步骤一:下载新的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’。