openfire 数据库

来源:互联网 发布:标普下调中国评级 知乎 编辑:程序博客网 时间:2024/05/18 22:51

关于数据库有三个地方需要注意:

1.plugin.xml数据库及其版本的相关配置

2.系统自带表 ofVersion表中,关于插件数据库的版本记录

3.database下相关sql文件(对应表的创建或更新),并向ofVersion中插一条字段(记录插件数据库版本)。

 

首先说下个人对OpenFire插件数据库加载的理解:

只要会用的话,不需要看此。或者看完数据库的创建步骤知道怎么回事,再来看这里的理解也行)

1) plugin.xml中配置数据库(及其版本),知道要需要哪个版本之后,

2) ofVersion查询相关插件字段 version

                            a) 发现没有该插件字段,去执行sql(创建表).

b)如果有字段,看version的值(int类型,1 2 3等)。需要版本比字段值高,更新数据库。需要版本比version值低,不更新。版本号一定是Int类型

 

3)在更新数据库的同时需要更新自己升级的表,还要修改ofversion这个表。

 

 

Sql文件

结构 插件根目录/src/database/ sql文件

Sql文件命名: 插件名_数据库.sql

 

# $Revision$# $Date$INSERT INTO ofVersion (name, version) VALUES ('myplugin',0);CREATE TABLE ofMypluginTest (  id int(11) NOT NULL,  username varchar(30) DEFAULT NULL,  password varchar(30) DEFAULT NULL,  PRIMARY KEY (id) );

 

一定要往ofVersion表中插入你插件数据库版本记录。有了这条记录,OpenFire再去加载这个插件的时候,发现ofVersion有这个插件记录,就不会再在去执行sql语句

 

plugin.xml中加两行

关于database的配置。下面代码的最后两行即可。

<version>1.0.0.1</version><date>24/11/2013</date><url>http://localhost:9090/openfire/plugins.jsp</url><minServerVersion>3.4.1</minServerVersion><licenseType>gpl</licenseType><databaseKey>myplugin</databaseKey><databaseVersion>0</databaseVersion>

 

启动OpenFire,加载插件,就显示数据库更新成功

 

数据库更新

首先更新sql文件,不修改。添加即可

方法:插件根目录/src/database/upgrade/1/插件sql或database /upgrade/2/插件sql

 

 

例如:plugins/myplugin/src/database/upgrade/1/myplugin_mysql.sql

示例Slq文件:

-- $Revision$-- $Date$ALTER TABLE ofMypluginTest ADD COLUMN age int(2) NULL;ALTER TABLE ofMypluginTest ADD COLUMN address VARCHAR(255) NULL;-- Update database versionUPDATE ofVersion SET version = 1 WHERE name = 'myplugin';

 

注意:更新语句,尽量先更新表,再更新ofVersion version字段的值。

 

万一你写的sql有问题,只更新了version值变成了新版本,表更新失败,再去加载插件时候,就不会再执行sql.创建表。

 

大致分析一下版本不对应的情况

(开发者尽量使版本对应)

由于情况较多,直接举例说明了

 

myplugin插件 plugin.xml要用版本 0,ofVersion表中,没有myplugin 0这条自动。执行sql,创建表,插入一条数据。(假如没有sql文件,数据库更新失败)

 

plugin.xml要用版本2,version字段为1,执行database/2/ sql文件。如果没有2这个文件夹和相应sql,显示数据库更新成功。(其实没有更新数据库)

 

 

 

0 0
原创粉丝点击