目录

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

V7.1-v7.2升级手册

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

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

1、从 https://github.com/cobub/razor 下载0.7.2版本的代码,得到razor-master.zip压缩包,将其解压得到razor-master文件夹,里面包含sdk和web文件夹等。

2、将上面的 web 文件夹复制你准备升级部署网站的web目录下(注意复制前 web 名称不能与前几个版本的名称相同)。为了方便调试,你可以将”web”修改成”razor_v7.2″,并将里面的application文件夹下的config.php文件中的$config['base_url']= ‘http://yoururl/razor_v7.2′。

3、将0.7.1版本的application\config\目录下的文件autoload.php、database.php复制到0.7.2版本的application\config\目录下,覆盖0.7.2版本的这两个文件,并把0.7.2版本里的routes.php文件中的$route['default_controller'] = “install/installation” 修改成 $route['default_controller'] = “report/home”。

步骤二: 准备修改数据库和数据仓库的脚本文件

这里假设你的数据库为 razor ,数据仓库为 razordw ,数据库和数据仓库中的表前缀均为 umsinstall_

1、修改数据库

修改表

1)修改表 ci_sessions

属性名称 属性值 变化
ip_address varchar(45) varchar(16)→ varchar(45)

sql语句:

ALTER TABLE `razor.umsinstall_ci_sessions` 
CHANGE `ip_address` `ip_address` varchar(45); 

2)修改表 clientdata

属性名称 属性值 变化
salt varchar(64) 新增

属性`insertdate`增加索引。(注:如果表数据量比较大,执行时间可能较长。)

sql语句:

ALTER TABLE `razor.umsinstall_clientdata` 
ADD COLUMN `salt` varchar(64) DEFAULT NULL,INDEX(`insertdate`);

3)修改表 clientusinglog 属性`insertdate`增加索引。

sql语句:

ALTER TABLE `razor.umsinstall_clientusinglog` 
ADD INDEX(`insertdate`);

4)修改表 errorlog

属性`insertdate`增加索引。

sql语句:

ALTER TABLE `razor.umsinstall_errorlog` 
ADD INDEX(`insertdate`);

5)修改表 eventdata

属性`insertdate`增加索引。

sql语句:

ALTER TABLE `razor.umsinstall_eventdata` 
ADD INDEX(`insertdate`);

6)修改表 device_tag

属性名称 属性值 变化
appkey varchar(64) productkey→appkey

sql语句:

ALTER TABLE  `razor.umsinstall_device_tag` 
CHANGE  `productkey`  `appkey` varchar(64);

2、修改数据仓库

2.1、增加表

1)新增表 sum_location

属性名称 属性值 索引
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

属性名称 属性值 索引
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

属性名称 属性值 索引
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

属性名称 属性值 索引
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

属性名称 属性值 索引
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'

sql语句:

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

属性名称 属性值 索引
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

属性名称 属性值 索引
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

属性名称 属性值 索引
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

属性名称 属性值 索引
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修改表

1)修改表 dim_date

属性名称 属性值 变化
datevalue TIMEStamp→Date

sql语句:

ALTER TABLE `razordw.umsinstall_dim_date` 
CHANGE `datevalue` `datevalue` date NOT NULL;

2)修改表 dim_devicesupplier

属性名称 属性值 变化
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

属性`date_sk`增加索引。

sql语句:

ALTER TABLE `razordw.umsinstall_fact_event` 
ADD INDEX(`date_sk`,`product_sk`);

4)修改表'dim_date'

删除表中datevalue在2015年1月1日以前的数据

sql语句:

DELETE FROM umsinstall_dim_date
WHERE date_sk BETWEEN 1 AND 1827

3、修改存储过程

修改存储过程 rundailyrundimrunfactrunmonthlyrunsumrunweekly

步骤: 步骤一:下载新的v0.7.2版本的代码,目录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.7.1,存储在合适的地方,删除“web”。然后将“razor_v7.2”修改成“web”(以前的版本的名称),并修改config.php文件的$config['base_url']= ‘http://yoururl/web’。