apache-roller-src-3.1.tar.gz的oracle数据库版本配置过程
参考roller-install-guide.pdf过程
1:从官方网站下载源apache-roller-src-3.1.tar.gz代码。
http://cwiki.apache.org/confluence/display/ROLLER/Roller+Downloads
和下载oracle的java数据库驱动程序包ojdbc14.jar
2:我是也从svn上下载了最新的程序,主要是用到其中的tools下的jar包,并copy到tools文件夹下
3:设置环境变量,主要是CATALINA_HOME和ROLLER变量,大家根据自己的情况可以更改,我的设置如下
CATALINA_HOME: C:\tomcat\rollertomcat
4:修改默认的mysql数据库到oracle数据库,并创建oracle数据库,我创建了oracle数据库为roller,用户名和密码都为roller,数据库脚本在\web\WEB-INF\dbscripts\oracle,可能新版本的没有,我放到附件中了
5:修改oracle数据库的配置信息,
找到
<java classname="org.apache.roller.business.utils.ConsistencyCheck" fork="yes">
<arg value="${command}"/>
<jvmarg value="-Dusername=roller"/>
<jvmarg value="-Dpassword=tiger"/>
<classpath>
<path refid="base.path"/>
<path location="${ro.build}/lib/rollerbeans.jar"/>
<path location="${ro.tools}/lib/mm.mysql-2.0.14-bin.jar"/>
</classpath>
</java>
修改为
<java classname="org.apache.roller.business.utils.ConsistencyCheck" fork="yes">
<arg value="${command}"/>
<jvmarg value="-Dusername=roller"/>
<jvmarg value="-Dpassword=roller"/>
<classpath>
<path refid="base.path"/>
<path location="${ro.build}/lib/rollerbeans.jar"/>
<path location="${ro.tools}/lib/ojdbc14.jar"/>
</classpath>
</java>
修改hibernate.cfg.xml到相应的oracle数据库形式
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://YOUR_DBHOSTNAME/YOUR_DBNAME?user=Y&password=YOUR_PASSWORD&autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8</property>
<property name="hibernate.connection.username">YOUR_USERNAME</property>
<property name="hibernate.connection.password">YOUR_PASSWORD</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
改为如下
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.2.199:1521:oracle</property>
<property name="hibernate.connection.username">roller</property>
<property name="hibernate.connection.password">roller</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
5:进入文件roller文件夹,生成部署文件
在cmd命令中运行bulil all
如果缺少包的话,请找下相应的包,我是从svn上签下最新的程序,只是用到其中的tools下的包,因为最新的好像是struts2,没学过,不熟悉,本想学下,有没时间,下次吧
生成文件夹,\build,下面有4个,我只用到其中的webapp,即用于部署的tomcat中的文件,
6:参考文档roller-install-guide.pdf
把activation.jar,mail.jar,ojdbc14.jar放到tomcat下的common\lib下,
添加roller.xml到tomcat\conf\Catalina\localhost文件夹下,我的是,对应与tomcat5.5
<!--
Context configuration file for the Tomcat Host Manager Web App
$Id: host-manager.xml 303743 2005-03-11 22:39:26Z remm $
-->
<Context path="/roller" docBase="E:\JDK5\rollerroller\build\webapp" debug="0">
<Resource name="jdbc/rollerdb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.199:1521:oracle"
username="roller"
password="roller"
maxActive="20"
maxIdle="3"
removeAbandoned="false"
maxWait="3000" />
<!-- If you want e-mail features, un-comment the section below -->
<Resource name="mail/Session"
auth="Container"
type="javax.mail.Session"
mail.smtp.host="mail.strongit.com.cn" />
</Context>
7:在webapp下新建文件夹data\roller_data\search-index和\data\roller_data\uploads
修改生成的文件
oracle的生成脚本:
-- Run this script to create the Roller database tables in your database.
-- *****************************************************
-- Create the tables and indices
create table rolleruser (
id varchar(48) not null primary key,
username varchar(255) not null,
passphrase varchar(255) not null,
fullname varchar(255) not null,
emailaddress varchar(255) not null,
datecreated timestamp not null,
locale varchar(20),
timezone varchar(50),
isenabled number(1) default 1 not null
);
alter table rolleruser add constraint ru_username_uq unique ( username );
create table userrole (
id varchar(48) not null primary key,
rolename varchar(255) not null,
username varchar(255) not null,
userid varchar(48) not null
);
create index ur_userid_idx on userrole( userid );
create index ur_username_idx on userrole( username );
-- User permissions within a website
-- permission_mask: bitmask 000 limited, 001 author, 011 admin
-- pending: pending user acceptance of invitation to join website
create table roller_user_permissions (
id varchar(48) not null primary key,
website_id varchar(48) not null,
user_id varchar(48) not null,
permission_mask integer not null,
pending number(1) default 1 not null
);
-- Audit log records time and comment about change
-- user_id: user that made change
-- object_id: id of associated object, if any
-- object_class: name of associated object class (e.g. WeblogEntryData)
-- comment: description of change
-- change_time: time that change was made
create table roller_audit_log (
id varchar(48) not null primary key,
user_id varchar(48) not null,
object_id varchar(48),
object_class varchar(255),
comment_text varchar(255) not null,
change_time timestamp
);
create table usercookie (
id varchar(48) not null primary key,
username varchar(255) not null,
cookieid varchar(100) not null,
datecreated timestamp not null
);
create index uc_username_idx on usercookie( username );
create index uc_cookieid_idx on usercookie( cookieid );
create table webpage (
id varchar(48) not null primary key,
name varchar(255) not null,
description varchar(255),
link varchar(255),
websiteid varchar(48) not null,
template clob not null,
updatetime timestamp not null,
hidden number(1) default 0 not null,
navbar number(1) default 0 not null,
templatelang varchar(20) not null,
decorator varchar(255) default null
);
create index wp_name_idx on webpage( name );
create index wp_link_idx on webpage( link );
create index wp_id_idx on webpage( websiteid );
create table website (
id varchar(48) not null primary key,
name varchar(255) not null,
handle varchar(255) not null,
description varchar(255) not null,
userid varchar(48) not null,
defaultpageid varchar(48) default '',
weblogdayid varchar(48) not null,
ignorewords clob,
enablebloggerapi number(1) default 0 not null,
editorpage varchar(255),
bloggercatid varchar(48),
defaultcatid varchar(48),
allowcomments number(1) default 1 not null,
emailcomments number(1) default 0 not null,
emailfromaddress varchar(255),
emailaddress varchar(255) not null,
editortheme varchar(255),
locale varchar(20),
timezone varchar(50),
defaultplugins varchar(255),
isenabled number(1) default 1 not null,
isactive number(1) default 1 not null,
datecreated timestamp not null,
blacklist clob,
defaultallowcomments number(1) default 1 not null,
defaultcommentdays integer default 7 not null,
commentmod number(1) default 0 not null,
displaycnt integer default 15 not null,
lastmodified timestamp,
pagemodels varchar(255) default null,
enablemultilang number(1) default 0 not null,
showalllangs number(1) default 1 not null
);
create index ws_userid_idx on website(userid);
create index ws_isenabled_idx on website(isenabled);
alter table website add constraint ws_handle_uq unique (handle);
-- This index is not necessary because of handle is already a primary key.
-- create index ws_handle_idx on website(handle);
create table folder (
id varchar(48) not null primary key,
name varchar(255) not null,
description varchar(255),
websiteid varchar(48) not null,
parentid varchar(48)
);
create index fo_websiteid_idx on folder( websiteid );
create table folderassoc (
id varchar(48) not null primary key,
folderid varchar(48) not null,
ancestorid varchar(40),
relation varchar(20) not null
);
create index fa_folderid_idx on folderassoc( folderid );
create index fa_ancestorid_idx on folderassoc( ancestorid );
create index fa_relation_idx on folderassoc( relation );
create table bookmark (
id varchar(48) not null primary key,
folderid varchar(48) not null,
name varchar(255) not null,
description varchar(255),
url varchar(255) not null,
weight integer default 0 not null,
priority integer default 100 not null,
image varchar(255),
feedurl varchar(255)
);
create index bm_folderid_idx on bookmark( folderid );
create table weblogcategory (
id varchar(48) not null primary key,
name varchar(255) not null,
description varchar(255),
websiteid varchar(48) not null,
image varchar(255)
);
create index wc_websiteid_idx on weblogcategory( websiteid );
-- alter table weblogcategory add unique category_nameparentid_uq (parentid, name(20));
create table weblogcategoryassoc (
id varchar(48) not null primary key,
categoryid varchar(48) not null,
ancestorid varchar(40),
relation varchar(20) not null
);
create index wca_categoryid_idx on weblogcategoryassoc( categoryid );
create index wca_ancestorid_idx on weblogcategoryassoc( ancestorid );
create index wca_relation_idx on weblogcategoryassoc( relation );
create table weblogentry (
id varchar(48) not null primary key,
userid varchar(48) not null,
anchor varchar(255) not null,
title varchar(255) not null,
text clob not null,
pubtime timestamp null,
updatetime timestamp not null,
websiteid varchar(48) not null,
categoryid varchar(48) not null,
publishentry number(1) default 1 not null,
link varchar(255),
plugins varchar(255),
allowcomments number(1) default 0 not null,
commentdays integer default 7 not null,
rightToLeft number(1) default 0 not null,
pinnedtomain number(1) default 0 not null,
locale varchar(20),
status varchar(20) not null,
summary clob default null,
content_type varchar(48) default null,
content_src varchar(255) default null
);
create index we_websiteid_idx on weblogentry( websiteid );
create index we_categoryid_idx on weblogentry( categoryid );
create index we_pubtime_idx on weblogentry( pubtime,publishentry,websiteid );
create index we_pinnedtom_idx on weblogentry(pinnedtomain);
create index we_pubentry_idx on weblogentry(publishentry);
create index we_userid_idx on weblogentry(userid);
create index we_status_idx on weblogentry(status);
create index we_locale_idx on weblogentry(locale);
create table roller_weblogentrytag (
id varchar(48) not null primary key,
entryid varchar(48) not null,
websiteid varchar(48) not null,
userid varchar(48) not null,
name varchar(255) not null,
time timestamp not null
);
create index wet_entryid_idx on roller_weblogentrytag( entryid );
create index wet_websiteid_idx on roller_weblogentrytag( websiteid );
create index wet_userid_idx on roller_weblogentrytag( userid );
create index wet_name_idx on roller_weblogentrytag( name );
create table roller_weblogentrytagagg (
id varchar(48) not null primary key,
websiteid varchar(48) ,
name varchar(255) not null,
total integer not null,
lastused timestamp not null
);
create index weta_websiteid_idx on roller_weblogentrytagagg( websiteid );
create index weta_name_idx on roller_weblogentrytagagg( name );
create index weta_lastused_idx on roller_weblogentrytagagg( lastused );
create table newsfeed (
id varchar(48) not null primary key,
name varchar(255) not null,
description varchar(255) not null,
link varchar(255) not null,
websiteid varchar(48) not null
);
create index nf_websiteid_idx on newsfeed( websiteid );
create table roller_comment (
id varchar(48) not null primary key,
entryid varchar(48) not null,
name varchar(255),
email varchar(255),
url varchar(255),
content clob,
posttime timestamp not null,
spam number(1) default 0 not null,
notify number(1) default 0 not null,
remotehost varchar(128),
pending number(1) default 1 not null,
approved number(1) default 0 not null
);
create index co_entryid_idx on roller_comment( entryid );
create index co_pending_idx on roller_comment( pending );
create index co_approved_idx on roller_comment( approved );
-- Ping Feature Tables
-- name: short descriptive name of the ping target
-- pingurl: URL to receive the ping
-- websiteid: if not null, this is a custom target defined by the associated website
-- conditioncode:
-- lastsuccess:
create table pingtarget (
id varchar(48) not null primary key,
name varchar(255) not null,
pingurl varchar(255) not null,
websiteid varchar(48),
conditioncode integer default 0 not null,
lastsuccess timestamp,
autoenabled number(1) default 0 not null
);
create index pt_websiteid_idx on pingtarget( websiteid );
-- auto ping configurations
-- websiteid: fk reference to website for which this auto ping configuration applies
-- pingtargetid: fk reference to the ping target to be pinged when the website changes
create table autoping (
id varchar(48) not null primary key,
websiteid varchar(48) not null,
pingtargetid varchar(48) not null
);
create index ap_websiteid_idx on autoping( websiteid );
create index ap_pingtid_idx on autoping( pingtargetid );
-- autopingid: fk reference to ping configuration
-- categoryid: fk reference to category
create table pingcategory (
id varchar(48) not null primary key,
autopingid varchar(48) not null,
categoryid varchar(48) not null
);
create index pc_autopingid_idx on pingcategory( autopingid );
create index pc_categoryid_idx on pingcategory( categoryid );
-- entrytime: timestamp of original entry onto the ping queue
-- pingtargetid: weak fk reference to ping target (not constrained)
-- websiteid: weak fk reference to website originating the ping (not constrained)
-- attempts: number of ping attempts that have been made for this entry
create table pingqueueentry (
id varchar(48) not null primary key,
entrytime timestamp not null,
pingtargetid varchar(48) not null,
websiteid varchar(48) not null,
attempts integer not null
);
create index pqe_entrytime_idx on pingqueueentry( entrytime );
create index pqe_pingtid_idx on pingqueueentry( pingtargetid );
create index pqe_websiteid_idx on pingqueueentry( websiteid );
-- Referer tracks URLs that refer to websites and entries
create table referer (
id varchar(48) not null primary key,
websiteid varchar(48) not null,
entryid varchar(48),
datestr varchar(10),
refurl varchar(255) not null,
refpermalink varchar(255),
reftime timestamp,
requrl varchar(255),
title varchar(255),
excerpt clob,
dayhits integer default 0 not null,
totalhits integer default 0 not null,
visible number(1) default 0 not null,
duplicate number(1) default 0 not null
);
create index ref_websiteid_idx on referer( websiteid );
create index ref_entryid_idx on referer( entryid );
create index ref_refurl_idx on referer( refurl );
create index ref_requrl_idx on referer( requrl );
create index ref_datestr_idx on referer( datestr );
create index ref_refpermlnk_idx on referer( refpermalink );
create index ref_duplicate_idx on referer( duplicate );
-- Configuration options for Roller, should only ever be one row
-- Deprecated in 1.2: configuration now stored in roller_properties table
create table rollerconfig (
id varchar(48) not null primary key,
sitedescription varchar(255),
sitename varchar(255),
emailaddress varchar(255),
absoluteurl varchar(255),
adminusers varchar(255),
encryptpasswords number(1) default 1 not null,
algorithm varchar(10),
newuserallowed number(1) default 0 not null,
editorpages varchar(255),
userthemes varchar(255) not null,
indexdir varchar(255),
memdebug number(1) default 0 not null,
autoformatcomments number(1) default 0 not null,
escapecommenthtml number(1) default 1 not null,
emailcomments number(1) default 0 not null,
enableaggregator number(1) default 0 not null,
enablelinkback number(1) default 0 not null,
rsscachetime integer default 3000 not null,
rssusecache number(1) default 1 not null,
uploadallow varchar(255),
uploadforbid varchar(255),
uploadenabled number(1) default 1 not null,
uploaddir varchar(255) not null,
uploadpath varchar(255) not null,
uploadmaxdirmb decimal(5,2) default 4.0 not null,
uploadmaxfilemb decimal(5,2) default 1.5 not null,
dbversion varchar(10),
refspamwords clob
);
create table roller_properties (
name varchar(255) not null primary key,
value clob
);
create table roller_tasklock (
id varchar(48) not null primary key,
name varchar(255) not null,
islocked number(1) default 0,
timeacquired timestamp null,
timeleased integer,
lastrun timestamp null
);
create index rtl_taskname_idx on roller_tasklock( name );
create table roller_hitcounts (
id varchar(48) not null primary key,
websiteid varchar(48) not null,
dailyhits integer
);
create index rhc_websiteid_idx on roller_hitcounts( websiteid );
-- Entry attribute: metadata for weblog entries
create table entryattribute (
id varchar(48) not null primary key,
entryid varchar(48) not null,
name varchar(255) not null,
value clob not null
);
create index ea_entryid_idx on entryattribute( entryid );
alter table entryattribute add constraint ea_name_uq unique ( entryid, name );
create table rag_group_subscription (
group_id varchar(48) not null,
subscription_id varchar(48) not null
);
create index raggs_gid_idx on rag_group_subscription(group_id);
create index raggs_sid_idx on rag_group_subscription(subscription_id);
create table rag_config (
id varchar(48) not null primary key,
default_group_id varchar(48),
title varchar(255) not null,
description varchar(255),
site_url varchar(255),
output_dir varchar(255),
cache_dir varchar(255) not null,
template_dir varchar(255),
main_page varchar(255),
admin_name varchar(255),
admin_email varchar(255) not null,
group_page varchar(255),
proxy_host varchar(255),
proxy_port integer default -1
);
create table rag_group (
id varchar(48) not null primary key,
handle varchar(255) not null,
title varchar(255) not null,
description varchar(255),
cat_restriction clob,
group_page varchar(255),
max_page_entries integer default 30,
max_feed_entries integer default 30
);
alter table rag_group add constraint ragg_handle_uq unique ( handle );
create table rag_subscription (
id varchar(48) not null primary key,
title varchar(255),
feed_url varchar(255) not null,
site_url varchar(255),
author varchar(255),
last_updated timestamp,
inbound_links integer default -1,
inbound_blogs integer default -1
);
alter table rag_subscription add constraint rags_feed_url_uq unique ( feed_url );
create table rag_entry (
id varchar(48) not null primary key,
subscription_id varchar(48) not null,
handle varchar(255),
title varchar(255),
guid varchar(255),
permalink clob not null,
author varchar(255),
content clob,
categories clob,
published timestamp not null,
updated timestamp
);
create index rage_sid_idx on rag_entry(subscription_id);
-- *****************************************************
-- Now add the foreign key relationships
-- user, role and website
alter table website add constraint ws_userid_fk
foreign key ( userid ) references rolleruser ( id ) ;
alter table userrole add constraint ur_userid_fk
foreign key ( userid ) references rolleruser( id ) ;
-- page, entry, category, comment
alter table webpage add constraint wp_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
alter table weblogentry add constraint we_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
alter table weblogentry add constraint wc_categoryid_fk
foreign key ( categoryid ) references weblogcategory( id ) ;
alter table weblogcategory add constraint wc_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
alter table roller_comment add constraint co_entryid_fk
foreign key ( entryid ) references weblogentry( id ) ;
alter table entryattribute add constraint att_entryid_fk
foreign key ( entryid ) references weblogentry( id ) ;
-- referer
alter table referer add constraint ref_entryid_fk
foreign key ( entryid ) references weblogentry( id ) ;
alter table referer add constraint ref_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
-- folder and bookmark
alter table folder add constraint fo_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
-- alter table folder add constraint fo_parentid_fk
-- foreign key ( parentid ) references folder( id );
alter table bookmark add constraint bm_folderid_fk
foreign key ( folderid ) references folder( id ) ;
-- newsfeed
alter table newsfeed add constraint nf_websiteid_fk
foreign key ( websiteid ) references website( id ) ;
-- pingtarget, autoping, pingcategory
alter table pingtarget add constraint pt_websiteid_fk
foreign key (websiteid) references website(id) ;
alter table autoping add constraint ap_websiteid_fk
foreign key (websiteid) references website(id) ;
alter table autoping add constraint ap_pingtargetid_fk
foreign key (pingtargetid) references pingtarget(id) ;
alter table pingcategory add constraint pc_autopingid_fk
foreign key (autopingid) references autoping(id) ;
alter table pingcategory add constraint pc_categoryid_fk
foreign key (categoryid) references weblogcategory(id) ;
-- THE FOLLOWING CONSTRAINTS CAN NOT BE SUPPORTED FOR IMPORTING new-user.xml
-- alter table website add constraint website_defaultpageid_fk foreign key ( defaultpageid ) references webpage ( id );
-- alter table website add constraint website_weblogdayid_fk foreign key ( weblogdayid ) references webpage ( id );
-- alter table webpage add constraint webpage_websiteid_fk foreign key ( websiteid ) references website( id );