Open Web Analytics/数据库模式更新器创建
Open Web Analytics | Open Web Analytics基本使用 | 站点追踪以及相关应用程序 | Open Web Analytics框架|Open Web Analytics扩展 |
什么是模式更新器[ ]
一个Schema updater,模式更新器,可以为模块开发者提供一种方法来配置更新数据库中的模块所创建的数据表。这在模块版本更新需要更新数据库表时显得尤为重要。
模式更新器是怎样工作的[ ]
一个模式更新器具体对应一个特定的模块,因此它是存储在所属模块的目录下的一个叫做“updates”的子目录下。
当OWA被唤起的时候,其框架将会对每一个活动模块所需版本与当前版本进行对比检查;
当一个模块更新,并且需要更新模块的模式,那么模块开发者必须定义一个模式更新器类来进行模式的更新;
更新 类[ ]
更新类可以通过集成owa_update抽象类来定义授权,并且需要注明具体的Up()版本以及执行方法;
OWA将会有顺序的检查并应用模块的updates子目录下的更新。更新应用顺序取决于你的更新类文件的名称,比如 002.php。这些文件名是与模式的版本号相一致的,所以当更新被正确执行后将会放在适当地方。这种顺序的命名方式确保你不会用同一个名称来定义两个更新,并且减少了更新无序执行的机会。
记住,OWA将会按照一定的顺序来执行这些更新---所以更新文件的名称只能包含数字。
一旦更新完成,OWA会将新的模式版本作为你的模块的配置数组中的一部分来存储到数据库中。
更新 类的命名必须严格按照这种规则: owa_{你的模块的名称}_{新的模式版本号,以数字0开头}, 下面是一个例子:
class owa_hello_002_update extends owa_update { function up() { // ...logic for update to version 2 of schema... // ensure that this method returns true if successful and false if not. return true; } function down() { // ...logic for reverting schema to version 1... // ensure that this method returns true if successful and false if not. return false; } }
告诉你的模块执行更新[ ]
每一次你定义一个更新,你必须告诉你的模块,它现在需要一个新的模式版本,这样这个更新将会被执行。所以我们需要更改module.php文件中的“required_schema_version”参数:
$this->required_schema_version = 4; // all updates less than this number will be applied if they have not already.
OWA将会检查这个版本号是否与当前的模式版本相冲突,如果冲突的话将会执行这些必须的更新。
参考来源[ ]
Open Web Analytics使用手册导航 | ||||||||
---|---|---|---|---|---|---|---|---|
|