Commit 7d6f00cd authored by guus's avatar guus

Guenthers fix for OF-33 (duplicate muc service identifiers)

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@11329 b35dd754-fafc-0310-a699-88a17e54d16e
parent 1cea2c44
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData VARCHAR(2000) NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza VARCHAR(2000) NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence VARCHAR(2000),
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(2000) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard VARCHAR(2000) NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(3000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtCmpConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRmSrvConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list VARCHAR(2000) NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(190) NOT NULL,
CONSTRAINT ofSASLAuthrizd_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details CLOB,
CONSTRAINT ofSecAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC tables
CREATE TABLE ofMucService (
serviceID INTEGER NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofMucSrvProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INTEGER NOT NULL,
roomID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15),
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50),
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100),
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_srvid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INTEGER NOT NULL,
jid VARCHAR(1000) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffil_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID INTEGER NOT NULL,
jid VARCHAR(1000) NOT NULL,
nickname VARCHAR(255),
firstName VARCHAR(100),
lastName VARCHAR(100),
url VARCHAR(100),
email VARCHAR(100),
faqentry VARCHAR(100),
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID INTEGER NOT NULL,
sender VARCHAR(2000) NOT NULL,
nickname VARCHAR(255),
logTime CHAR(15) NOT NULL,
subject VARCHAR(255),
body CLOB
);
CREATE INDEX ofMucConvLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100),
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER,
persistItems INTEGER,
maxItems INTEGER,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100),
bodyXSLT VARCHAR(100),
dataformXSLT VARCHAR(100),
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255),
language VARCHAR(255),
name VARCHAR(50),
replyPolicy VARCHAR(15),
associationPolicy VARCHAR(15),
maxLeafNodes INTEGER,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
jid VARCHAR(90) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNdJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNGrps_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
jid VARCHAR(90) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffil_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(20) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload CLOB,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
id VARCHAR(90) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15),
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200),
CONSTRAINT ofPubsubSubs_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255),
replyPolicy VARCHAR(15),
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData VARCHAR(2000) NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza VARCHAR(2000) NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence VARCHAR(2000),
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(2000) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard VARCHAR(2000) NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(3000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtCmpConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRmSrvConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list VARCHAR(2000) NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(190) NOT NULL,
CONSTRAINT ofSASLAuthrizd_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details CLOB,
CONSTRAINT ofSecAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC tables
CREATE TABLE ofMucService (
serviceID INTEGER NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofMucSrvProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INTEGER NOT NULL,
roomID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15),
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50),
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100),
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_srvid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(2000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INTEGER NOT NULL,
jid VARCHAR(1000) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffil_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID INTEGER NOT NULL,
jid VARCHAR(1000) NOT NULL,
nickname VARCHAR(255),
firstName VARCHAR(100),
lastName VARCHAR(100),
url VARCHAR(100),
email VARCHAR(100),
faqentry VARCHAR(100),
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID INTEGER NOT NULL,
sender VARCHAR(2000) NOT NULL,
nickname VARCHAR(255),
logTime CHAR(15) NOT NULL,
subject VARCHAR(255),
body CLOB
);
CREATE INDEX ofMucConvLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100),
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER,
persistItems INTEGER,
maxItems INTEGER,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100),
bodyXSLT VARCHAR(100),
dataformXSLT VARCHAR(100),
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255),
language VARCHAR(255),
name VARCHAR(50),
replyPolicy VARCHAR(15),
associationPolicy VARCHAR(15),
maxLeafNodes INTEGER,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
jid VARCHAR(90) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNdJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNGrps_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
jid VARCHAR(90) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffil_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(20) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload CLOB,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(80) NOT NULL,
nodeID VARCHAR(80) NOT NULL,
id VARCHAR(90) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15),
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200),
CONSTRAINT ofPubsubSubs_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255),
replyPolicy VARCHAR(15),
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
// $Revision: 1650 $
// $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate VARCHAR(15) NOT NULL,
modificationDate VARCHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime VARCHAR(15),
endTime VARCHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData LONGVARCHAR NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID BIGINT NOT NULL,
creationDate VARCHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza LONGVARCHAR NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence LONGVARCHAR,
offlineDate VARCHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid);
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroup_rosterid_idx ON ofRosterGroups (rosterID);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard LONGVARCHAR NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id BIGINT NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name varchar(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list LONGVARCHAR NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details LONGVARCHAR,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
// MUC Tables
CREATE TABLE ofMucService (
serviceID BIGINT NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID BIGINT NOT NULL,
roomID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID BIGINT NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID BIGINT NOT NULL,
jid VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID BIGINT NOT NULL,
sender VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body LONGVARCHAR NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
// PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload VARCHAR(4000) NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
// Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
// Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
// Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
// $Revision: 1650 $
// $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate VARCHAR(15) NOT NULL,
modificationDate VARCHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime VARCHAR(15),
endTime VARCHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData LONGVARCHAR NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID BIGINT NOT NULL,
creationDate VARCHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza LONGVARCHAR NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence LONGVARCHAR,
offlineDate VARCHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid);
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroup_rosterid_idx ON ofRosterGroups (rosterID);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard LONGVARCHAR NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id BIGINT NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name varchar(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list LONGVARCHAR NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details LONGVARCHAR,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
// MUC Tables
CREATE TABLE ofMucService (
serviceID BIGINT NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID BIGINT NOT NULL,
roomID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID BIGINT NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID BIGINT NOT NULL,
jid VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID BIGINT NOT NULL,
sender VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body LONGVARCHAR NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
// PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload VARCHAR(4000) NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
// Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
// Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
// Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
# $Revision: 1650 $
# $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
PRIMARY KEY (username),
INDEX ofUser_cDate_idx (creationDate)
);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
PRIMARY KEY (username, name),
INDEX ofUserFlag_sTime_idx (startTime),
INDEX ofUserFlag_eTime_idx (endTime)
);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
PRIMARY KEY (username, name, namespace(100))
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate CHAR(15) NOT NULL,
PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub TINYINT NOT NULL,
ask TINYINT NOT NULL,
recv TINYINT NOT NULL,
nick VARCHAR(255),
PRIMARY KEY (rosterID),
INDEX ofRoster_unameid_idx (username),
INDEX ofRoster_jid_idx (jid)
);
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rank TINYINT NOT NULL,
groupName VARCHAR(255) NOT NULL,
PRIMARY KEY (rosterID, rank),
INDEX ofRosterGroup_rosterid_idx (rosterID)
);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard MEDIUMTEXT NOT NULL,
PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator TINYINT NOT NULL,
PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id BIGINT NOT NULL,
PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard TINYINT NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault TINYINT NOT NULL,
list TEXT NOT NULL,
PRIMARY KEY (username, name),
INDEX ofPrivacyList_default_idx (username, isDefault)
);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal TEXT NOT NULL,
PRIMARY KEY (username, principal(200))
);
CREATE TABLE ofSecurityAuditLog (
msgID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details TEXT,
PRIMARY KEY (msgID),
INDEX ofSecurityAuditLog_tstamp_idx (entryStamp),
INDEX ofSecurityAuditLog_uname_idx (username)
);
# MUC Tables
CREATE TABLE ofMucService (
serviceID BIGINT NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden TINYINT NOT NULL,
PRIMARY KEY (subdomain),
INDEX ofMucService_serviceid_idx (serviceID)
);
CREATE TABLE ofMucServiceProp (
serviceID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID BIGINT NOT NULL,
roomID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject TINYINT NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom TINYINT NOT NULL,
moderated TINYINT NOT NULL,
membersOnly TINYINT NOT NULL,
canInvite TINYINT NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID TINYINT NOT NULL,
logEnabled TINYINT NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast TINYINT NOT NULL,
useReservedNick TINYINT NOT NULL,
canChangeNick TINYINT NOT NULL,
canRegister TINYINT NOT NULL,
PRIMARY KEY (serviceID,name),
INDEX ofMucRoom_roomid_idx (roomID),
INDEX ofMucRoom_serviceid_idx (serviceID)
);
CREATE TABLE ofMucRoomProp (
roomID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID BIGINT NOT NULL,
jid TEXT NOT NULL,
affiliation TINYINT NOT NULL,
PRIMARY KEY (roomID,jid(70))
);
CREATE TABLE ofMucMember (
roomID BIGINT NOT NULL,
jid TEXT NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
PRIMARY KEY (roomID,jid(70))
);
CREATE TABLE ofMucConversationLog (
roomID BIGINT NOT NULL,
sender TEXT NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body TEXT NULL,
INDEX ofMucConversationLog_time_idx (logTime)
);
# PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf TINYINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads TINYINT NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems TINYINT NULL,
maxItems INTEGER NULL,
notifyConfigChanges TINYINT NOT NULL,
notifyDelete TINYINT NOT NULL,
notifyRetract TINYINT NOT NULL,
presenceBased TINYINT NOT NULL,
sendItemSubscribe TINYINT NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled TINYINT NOT NULL,
configSubscription TINYINT NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(255) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
associationType VARCHAR(20) NOT NULL,
PRIMARY KEY (serviceID, nodeID, jid(70))
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL,
INDEX ofPubsubNodeGroups_idx (serviceID, nodeID)
);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
PRIMARY KEY (serviceID, nodeID, jid(70))
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload MEDIUMTEXT NULL,
PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
owner VARCHAR(255) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver TINYINT NOT NULL,
digest TINYINT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody TINYINT NOT NULL,
showValues VARCHAR(30) NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth TINYINT NOT NULL,
keyword VARCHAR(200) NULL,
PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf TINYINT NOT NULL,
deliverPayloads TINYINT NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems TINYINT NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges TINYINT NOT NULL,
notifyDelete TINYINT NOT NULL,
notifyRetract TINYINT NOT NULL,
presenceBased TINYINT NOT NULL,
sendItemSubscribe TINYINT NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled TINYINT NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
PRIMARY KEY (serviceID, leaf)
);
# Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
# Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
# Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
# $Revision: 1650 $
# $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
PRIMARY KEY (username),
INDEX ofUser_cDate_idx (creationDate)
);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
PRIMARY KEY (username, name),
INDEX ofUserFlag_sTime_idx (startTime),
INDEX ofUserFlag_eTime_idx (endTime)
);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
PRIMARY KEY (username, name, namespace(100))
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate CHAR(15) NOT NULL,
PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub TINYINT NOT NULL,
ask TINYINT NOT NULL,
recv TINYINT NOT NULL,
nick VARCHAR(255),
PRIMARY KEY (rosterID),
INDEX ofRoster_unameid_idx (username),
INDEX ofRoster_jid_idx (jid)
);
CREATE TABLE ofRosterGroups (
rosterID BIGINT NOT NULL,
rank TINYINT NOT NULL,
groupName VARCHAR(255) NOT NULL,
PRIMARY KEY (rosterID, rank),
INDEX ofRosterGroup_rosterid_idx (rosterID)
);
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard MEDIUMTEXT NOT NULL,
PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator TINYINT NOT NULL,
PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id BIGINT NOT NULL,
PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard TINYINT NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault TINYINT NOT NULL,
list TEXT NOT NULL,
PRIMARY KEY (username, name),
INDEX ofPrivacyList_default_idx (username, isDefault)
);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal TEXT NOT NULL,
PRIMARY KEY (username, principal(200))
);
CREATE TABLE ofSecurityAuditLog (
msgID BIGINT NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details TEXT,
PRIMARY KEY (msgID),
INDEX ofSecurityAuditLog_tstamp_idx (entryStamp),
INDEX ofSecurityAuditLog_uname_idx (username)
);
# MUC Tables
CREATE TABLE ofMucService (
serviceID BIGINT NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden TINYINT NOT NULL,
PRIMARY KEY (subdomain),
INDEX ofMucService_serviceid_idx (serviceID)
);
CREATE TABLE ofMucServiceProp (
serviceID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID BIGINT NOT NULL,
roomID BIGINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject TINYINT NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom TINYINT NOT NULL,
moderated TINYINT NOT NULL,
membersOnly TINYINT NOT NULL,
canInvite TINYINT NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID TINYINT NOT NULL,
logEnabled TINYINT NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast TINYINT NOT NULL,
useReservedNick TINYINT NOT NULL,
canChangeNick TINYINT NOT NULL,
canRegister TINYINT NOT NULL,
PRIMARY KEY (serviceID,name),
INDEX ofMucRoom_roomid_idx (roomID),
INDEX ofMucRoom_serviceid_idx (serviceID)
);
CREATE TABLE ofMucRoomProp (
roomID BIGINT NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID BIGINT NOT NULL,
jid TEXT NOT NULL,
affiliation TINYINT NOT NULL,
PRIMARY KEY (roomID,jid(70))
);
CREATE TABLE ofMucMember (
roomID BIGINT NOT NULL,
jid TEXT NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
PRIMARY KEY (roomID,jid(70))
);
CREATE TABLE ofMucConversationLog (
roomID BIGINT NOT NULL,
sender TEXT NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body TEXT NULL,
INDEX ofMucConversationLog_time_idx (logTime)
);
# PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf TINYINT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads TINYINT NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems TINYINT NULL,
maxItems INTEGER NULL,
notifyConfigChanges TINYINT NOT NULL,
notifyDelete TINYINT NOT NULL,
notifyRetract TINYINT NOT NULL,
presenceBased TINYINT NOT NULL,
sendItemSubscribe TINYINT NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled TINYINT NOT NULL,
configSubscription TINYINT NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(255) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
associationType VARCHAR(20) NOT NULL,
PRIMARY KEY (serviceID, nodeID, jid(70))
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL,
INDEX ofPubsubNodeGroups_idx (serviceID, nodeID)
);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
PRIMARY KEY (serviceID, nodeID, jid(70))
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload MEDIUMTEXT NULL,
PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(255) NOT NULL,
owner VARCHAR(255) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver TINYINT NOT NULL,
digest TINYINT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody TINYINT NOT NULL,
showValues VARCHAR(30) NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth TINYINT NOT NULL,
keyword VARCHAR(200) NULL,
PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf TINYINT NOT NULL,
deliverPayloads TINYINT NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems TINYINT NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges TINYINT NOT NULL,
notifyDelete TINYINT NOT NULL,
notifyRetract TINYINT NOT NULL,
presenceBased TINYINT NOT NULL,
sendItemSubscribe TINYINT NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled TINYINT NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
PRIMARY KEY (serviceID, leaf)
);
# Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
# Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
# Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR2(64) NOT NULL,
plainPassword VARCHAR2(32),
encryptedPassword VARCHAR2(255),
name VARCHAR2(100),
email VARCHAR2(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
namespace VARCHAR2(200) NOT NULL,
privateData LONG NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR2(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza LONG NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR2(64) NOT NULL,
offlinePresence LONG,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR2(64) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR2(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR2(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroup_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster INITIALLY DEFERRED DEFERRABLE;
CREATE TABLE ofVCard (
username VARCHAR2(64) NOT NULL,
vcard LONG NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR2(50) NOT NULL,
description VARCHAR2(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(4000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR2(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR2(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR2(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR2(255),
permission VARCHAR2(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR2(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR2(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
isDefault INTEGER NOT NULL,
list LONG NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR2(64) NOT NULL,
entryStamp INTEGER NOT NULL,
summary VARCHAR2(255) NOT NULL,
node VARCHAR2(255) NOT NULL,
details VARCHAR2(4000),
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC Tables
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain VARCHAR2(255) NOT NULL,
description VARCHAR2(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom(
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR2(50) NOT NULL,
naturalName VARCHAR2(255) NOT NULL,
description VARCHAR2(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR2(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR2(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid VARCHAR2(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid VARCHAR2(1024) NOT NULL,
nickname VARCHAR2(255) NULL,
firstName VARCHAR2(100) NULL,
lastName VARCHAR2(100) NULL,
url VARCHAR2(100) NULL,
email VARCHAR2(100) NULL,
faqentry VARCHAR2(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender VARCHAR2(1024) NOT NULL,
nickname VARCHAR2(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR2(255) NULL,
body VARCHAR2(4000) NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR2(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR2(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR2(10) NOT NULL,
payloadType VARCHAR2(100) NULL,
bodyXSLT VARCHAR2(100) NULL,
dataformXSLT VARCHAR2(100) NULL,
creator VARCHAR2(1024) NOT NULL,
description VARCHAR2(255) NULL,
language VARCHAR2(255) NULL,
name VARCHAR2(50) NULL,
replyPolicy VARCHAR2(15) NULL,
associationPolicy VARCHAR2(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
associationType VARCHAR2(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
rosterGroup VARCHAR2(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
affiliation VARCHAR2(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
id VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload VARCHAR(4000) NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
id VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
owner VARCHAR2(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR2(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR2(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR2(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR2(10) NOT NULL,
language VARCHAR2(255) NULL,
replyPolicy VARCHAR2(15) NULL,
associationPolicy VARCHAR2(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
commit;
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
CREATE TABLE ofUser (
username VARCHAR2(64) NOT NULL,
plainPassword VARCHAR2(32),
encryptedPassword VARCHAR2(255),
name VARCHAR2(100),
email VARCHAR2(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
namespace VARCHAR2(200) NOT NULL,
privateData LONG NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR2(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza LONG NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR2(64) NOT NULL,
offlinePresence LONG,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR2(64) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR2(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR2(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroup_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster INITIALLY DEFERRED DEFERRABLE;
CREATE TABLE ofVCard (
username VARCHAR2(64) NOT NULL,
vcard LONG NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR2(50) NOT NULL,
description VARCHAR2(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(4000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR2(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR2(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR2(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR2(255),
permission VARCHAR2(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR2(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR2(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR2(64) NOT NULL,
name VARCHAR2(100) NOT NULL,
isDefault INTEGER NOT NULL,
list LONG NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR2(64) NOT NULL,
entryStamp INTEGER NOT NULL,
summary VARCHAR2(255) NOT NULL,
node VARCHAR2(255) NOT NULL,
details VARCHAR2(4000),
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC Tables
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain VARCHAR2(255) NOT NULL,
description VARCHAR2(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom(
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR2(50) NOT NULL,
naturalName VARCHAR2(255) NOT NULL,
description VARCHAR2(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR2(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR2(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom (roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom (serviceID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name VARCHAR2(100) NOT NULL,
propValue VARCHAR2(1024) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid VARCHAR2(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid VARCHAR2(1024) NOT NULL,
nickname VARCHAR2(255) NULL,
firstName VARCHAR2(100) NULL,
lastName VARCHAR2(100) NULL,
url VARCHAR2(100) NULL,
email VARCHAR2(100) NULL,
faqentry VARCHAR2(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID, jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender VARCHAR2(1024) NOT NULL,
nickname VARCHAR2(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR2(255) NULL,
body VARCHAR2(4000) NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR2(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR2(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR2(10) NOT NULL,
payloadType VARCHAR2(100) NULL,
bodyXSLT VARCHAR2(100) NULL,
dataformXSLT VARCHAR2(100) NULL,
creator VARCHAR2(1024) NOT NULL,
description VARCHAR2(255) NULL,
language VARCHAR2(255) NULL,
name VARCHAR2(50) NULL,
replyPolicy VARCHAR2(15) NULL,
associationPolicy VARCHAR2(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
associationType VARCHAR2(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
rosterGroup VARCHAR2(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
affiliation VARCHAR2(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
id VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload VARCHAR(4000) NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR2(100) NOT NULL,
nodeID VARCHAR2(100) NOT NULL,
id VARCHAR2(100) NOT NULL,
jid VARCHAR2(1024) NOT NULL,
owner VARCHAR2(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR2(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR2(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR2(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR2(10) NOT NULL,
language VARCHAR2(255) NULL,
replyPolicy VARCHAR2(15) NULL,
associationPolicy VARCHAR2(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
commit;
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
-- Note: This schema has only been tested on PostgreSQL 7.3.2.
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate VARCHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterID_idx ON ofRosterGroups (rosterID);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster INITIALLY DEFERRED DEFERRABLE;
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard TEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list TEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details TEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC Tables
CREATE TABLE ofMucService (
serviceID INTEGER NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INTEGER NOT NULL,
roomID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom(serviceID);
CREATE TABLE ofMucRoomProp (
roomID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INTEGER NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INTEGER NOT NULL,
jid VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INTEGER NOT NULL,
sender VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body TEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload TEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
-- $Revision: 1650 $
-- $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $
-- Note: This schema has only been tested on PostgreSQL 7.3.2.
CREATE TABLE ofUser (
username VARCHAR(64) NOT NULL,
plainPassword VARCHAR(32),
encryptedPassword VARCHAR(255),
name VARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate);
CREATE TABLE ofUserProp (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime);
CREATE TABLE ofPrivate (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
namespace VARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username VARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username VARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate VARCHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
jid VARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick VARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName VARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterID_idx ON ofRosterGroups (rosterID);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster INITIALLY DEFERRED DEFERRABLE;
CREATE TABLE ofVCard (
username VARCHAR(64) NOT NULL,
vcard TEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName VARCHAR(50) NOT NULL,
description VARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName VARCHAR(50) NOT NULL,
username VARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name VARCHAR(100) NOT NULL,
propValue VARCHAR(4000) NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name VARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain VARCHAR(255) NOT NULL,
wildcard INTEGER NOT NULL,
secret VARCHAR(255),
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain VARCHAR(255) NOT NULL,
remotePort INTEGER,
permission VARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username VARCHAR(64) NOT NULL,
name VARCHAR(100) NOT NULL,
isDefault INTEGER NOT NULL,
list TEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username VARCHAR(64) NOT NULL,
principal VARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username VARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary VARCHAR(255) NOT NULL,
node VARCHAR(255) NOT NULL,
details TEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
-- MUC Tables
CREATE TABLE ofMucService (
serviceID INTEGER NOT NULL,
subdomain VARCHAR(255) NOT NULL,
description VARCHAR(255),
isHidden INTEGER NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INTEGER NOT NULL,
roomID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name VARCHAR(50) NOT NULL,
naturalName VARCHAR(255) NOT NULL,
description VARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INTEGER NOT NULL,
maxUsers INTEGER NOT NULL,
publicRoom INTEGER NOT NULL,
moderated INTEGER NOT NULL,
membersOnly INTEGER NOT NULL,
canInvite INTEGER NOT NULL,
roomPassword VARCHAR(50) NULL,
canDiscoverJID INTEGER NOT NULL,
logEnabled INTEGER NOT NULL,
subject VARCHAR(100) NULL,
rolesToBroadcast INTEGER NOT NULL,
useReservedNick INTEGER NOT NULL,
canChangeNick INTEGER NOT NULL,
canRegister INTEGER NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx ON ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx ON ofMucRoom(serviceID);
CREATE TABLE ofMucRoomProp (
roomID INTEGER NOT NULL,
name VARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INTEGER NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation INTEGER NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INTEGER NOT NULL,
jid VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
firstName VARCHAR(100) NULL,
lastName VARCHAR(100) NULL,
url VARCHAR(100) NULL,
email VARCHAR(100) NULL,
faqentry VARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INTEGER NOT NULL,
sender VARCHAR(1024) NOT NULL,
nickname VARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject VARCHAR(255) NULL,
body TEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
-- PubSub Tables
CREATE TABLE ofPubsubNode (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent VARCHAR(100) NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NULL,
persistItems INTEGER NULL,
maxItems INTEGER NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
configSubscription INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
payloadType VARCHAR(100) NULL,
bodyXSLT VARCHAR(100) NULL,
dataformXSLT VARCHAR(100) NULL,
creator VARCHAR(1024) NOT NULL,
description VARCHAR(255) NULL,
language VARCHAR(255) NULL,
name VARCHAR(50) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NULL,
maxLeafNodes INTEGER NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
associationType VARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
rosterGroup VARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
affiliation VARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload TEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID VARCHAR(100) NOT NULL,
nodeID VARCHAR(100) NOT NULL,
id VARCHAR(100) NOT NULL,
jid VARCHAR(1024) NOT NULL,
owner VARCHAR(1024) NOT NULL,
state VARCHAR(15) NOT NULL,
deliver INTEGER NOT NULL,
digest INTEGER NOT NULL,
digest_frequency INTEGER NOT NULL,
expire CHAR(15) NULL,
includeBody INTEGER NOT NULL,
showValues VARCHAR(30) NOT NULL,
subscriptionType VARCHAR(10) NOT NULL,
subscriptionDepth INTEGER NOT NULL,
keyword VARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID VARCHAR(100) NOT NULL,
leaf INTEGER NOT NULL,
deliverPayloads INTEGER NOT NULL,
maxPayloadSize INTEGER NOT NULL,
persistItems INTEGER NOT NULL,
maxItems INTEGER NOT NULL,
notifyConfigChanges INTEGER NOT NULL,
notifyDelete INTEGER NOT NULL,
notifyRetract INTEGER NOT NULL,
presenceBased INTEGER NOT NULL,
sendItemSubscribe INTEGER NOT NULL,
publisherModel VARCHAR(15) NOT NULL,
subscriptionEnabled INTEGER NOT NULL,
accessModel VARCHAR(10) NOT NULL,
language VARCHAR(255) NULL,
replyPolicy VARCHAR(15) NULL,
associationPolicy VARCHAR(15) NOT NULL,
maxLeafNodes INTEGER NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
-- Finally, insert default table values.
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
-- Entry for admin user
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
-- Entry for default conference service
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
/* $Revision: 1650 $ */
/* $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $ */
CREATE TABLE ofUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32),
encryptedPassword NVARCHAR(255),
name NVARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
namespace NVARCHAR(200) NOT NULL,
privateData NTEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username NVARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza NTEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username NVARCHAR(64) NOT NULL,
offlinePresence NTEXT,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick NVARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName NVARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster;
CREATE TABLE ofVCard (
username NVARCHAR(64) NOT NULL,
vcard NTEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName NVARCHAR(50) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name NVARCHAR(100) NOT NULL,
propValue NTEXT NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name NVARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain NVARCHAR(255) NOT NULL,
wildcard INT NOT NULL,
secret NVARCHAR(255),
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain NVARCHAR(255) NOT NULL,
remotePort INTEGER,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
isDefault INT NOT NULL,
list NTEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username NVARCHAR(64) NOT NULL,
principal NVARCHAR(2000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NOT NULL,
details NTEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
/* MUC Tables */
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
isHidden INT NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name NVARCHAR(50) NOT NULL,
naturalName NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INT NOT NULL,
maxUsers INT NOT NULL,
publicRoom INT NOT NULL,
moderated INT NOT NULL,
membersOnly INT NOT NULL,
canInvite INT NOT NULL,
roomPassword NVARCHAR(50) NULL,
canDiscoverJID INT NOT NULL,
logEnabled INT NOT NULL,
subject NVARCHAR(100) NULL,
rolesToBroadcast INT NOT NULL,
useReservedNick INT NOT NULL,
canChangeNick INT NOT NULL,
canRegister INT NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx on ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx on ofMucRoom(serviceID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
affiliation INT NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
nickname NVARCHAR(255) NULL,
firstName NVARCHAR(100) NULL,
lastName NVARCHAR(100) NULL,
url NVARCHAR(100) NULL,
email NVARCHAR(100) NULL,
faqentry NVARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender NVARCHAR(1024) NOT NULL,
nickname NVARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject NVARCHAR(255) NULL,
body NTEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
/* PubSub Tables */
CREATE TABLE ofPubsubNode (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent NVARCHAR(100) NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NULL,
persistItems INT NULL,
maxItems INT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
configSubscription INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
payloadType NVARCHAR(100) NULL,
bodyXSLT NVARCHAR(100) NULL,
dataformXSLT NVARCHAR(100) NULL,
creator NVARCHAR(255) NOT NULL,
description NVARCHAR(255) NULL,
language NVARCHAR(255) NULL,
name NVARCHAR(50) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NULL,
maxLeafNodes INT NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
associationType NVARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
rosterGroup NVARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
affiliation NVARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload NTEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
owner NVARCHAR(1024) NOT NULL,
state NVARCHAR(15) NOT NULL,
deliver INT NOT NULL,
digest INT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody INT NOT NULL,
showValues NVARCHAR(30) NOT NULL,
subscriptionType NVARCHAR(10) NOT NULL,
subscriptionDepth INT NOT NULL,
keyword NVARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NOT NULL,
persistItems INT NOT NULL,
maxItems INT NOT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
language NVARCHAR(255) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NOT NULL,
maxLeafNodes INT NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
/* Finally, insert default table values. */
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
/* Entry for admin user */
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
/* Entry for default conference service */
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
/* $Revision: 1650 $ */
/* $Date: 2005-07-20 00:18:17 -0300 (Wed, 20 Jul 2005) $ */
CREATE TABLE ofUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32),
encryptedPassword NVARCHAR(255),
name NVARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
namespace NVARCHAR(200) NOT NULL,
privateData NTEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username NVARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza NTEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username NVARCHAR(64) NOT NULL,
offlinePresence NTEXT,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick NVARCHAR(255),
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName NVARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster;
CREATE TABLE ofVCard (
username NVARCHAR(64) NOT NULL,
vcard NTEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName NVARCHAR(50) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name NVARCHAR(100) NOT NULL,
propValue NTEXT NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name NVARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain NVARCHAR(255) NOT NULL,
wildcard INT NOT NULL,
secret NVARCHAR(255),
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain NVARCHAR(255) NOT NULL,
remotePort INTEGER,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
isDefault INT NOT NULL,
list NTEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username NVARCHAR(64) NOT NULL,
principal NVARCHAR(2000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp BIGINT NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NOT NULL,
details NTEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
/* MUC Tables */
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
isHidden INT NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name NVARCHAR(50) NOT NULL,
naturalName NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INT NOT NULL,
maxUsers INT NOT NULL,
publicRoom INT NOT NULL,
moderated INT NOT NULL,
membersOnly INT NOT NULL,
canInvite INT NOT NULL,
roomPassword NVARCHAR(50) NULL,
canDiscoverJID INT NOT NULL,
logEnabled INT NOT NULL,
subject NVARCHAR(100) NULL,
rolesToBroadcast INT NOT NULL,
useReservedNick INT NOT NULL,
canChangeNick INT NOT NULL,
canRegister INT NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx on ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx on ofMucRoom(serviceID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue NVARCHAR(2000) NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
affiliation INT NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid NVARCHAR(424) NOT NULL,
nickname NVARCHAR(255) NULL,
firstName NVARCHAR(100) NULL,
lastName NVARCHAR(100) NULL,
url NVARCHAR(100) NULL,
email NVARCHAR(100) NULL,
faqentry NVARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender NVARCHAR(1024) NOT NULL,
nickname NVARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject NVARCHAR(255) NULL,
body NTEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
/* PubSub Tables */
CREATE TABLE ofPubsubNode (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent NVARCHAR(100) NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NULL,
persistItems INT NULL,
maxItems INT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
configSubscription INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
payloadType NVARCHAR(100) NULL,
bodyXSLT NVARCHAR(100) NULL,
dataformXSLT NVARCHAR(100) NULL,
creator NVARCHAR(255) NOT NULL,
description NVARCHAR(255) NULL,
language NVARCHAR(255) NULL,
name NVARCHAR(50) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NULL,
maxLeafNodes INT NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
associationType NVARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
rosterGroup NVARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(250) NOT NULL,
affiliation NVARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload NTEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
owner NVARCHAR(1024) NOT NULL,
state NVARCHAR(15) NOT NULL,
deliver INT NOT NULL,
digest INT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody INT NOT NULL,
showValues NVARCHAR(30) NOT NULL,
subscriptionType NVARCHAR(10) NOT NULL,
subscriptionDepth INT NOT NULL,
keyword NVARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NOT NULL,
persistItems INT NOT NULL,
maxItems INT NOT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
language NVARCHAR(255) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NOT NULL,
maxLeafNodes INT NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
/* Finally, insert default table values. */
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
/* Entry for admin user */
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
/* Entry for default conference service */
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
/* $Revision: 1650 $ */
/* $Date: 2005-07-19 20:18:17 -0700 (Tue, 19 Jul 2005) $ */
CREATE TABLE ofUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32) NULL,
encryptedPassword NVARCHAR(255) NULL,
name NVARCHAR(100) NULL,
email VARCHAR(100) NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
namespace NVARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username NVARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username NVARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
jid TEXT NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick NVARCHAR(255) NULL,
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName NVARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster;
CREATE TABLE ofVCard (
username NVARCHAR(64) NOT NULL,
vcard TEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255) NULL,
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName NVARCHAR(50) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name NVARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain NVARCHAR(255) NOT NULL,
wildcard INT NOT NULL,
secret NVARCHAR(255) NULL,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain NVARCHAR(255) NOT NULL,
remotePort INTEGER NULL,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
isDefault INT NOT NULL,
list TEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username NVARCHAR(64) NOT NULL,
principal NVARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp INTEGER NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NOT NULL,
details TEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
/* MUC Tables */
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
isHidden INT NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name NVARCHAR(50) NOT NULL,
naturalName NVARCHAR(255) NOT NULL,
description NVARCHAR(255) NULL,
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INT NOT NULL,
maxUsers INT NOT NULL,
publicRoom INT NOT NULL,
moderated INT NOT NULL,
membersOnly INT NOT NULL,
canInvite INT NOT NULL,
roomPassword NVARCHAR(50) NULL,
canDiscoverJID INT NOT NULL,
logEnabled INT NOT NULL,
subject NVARCHAR(100) NULL,
rolesToBroadcast INT NOT NULL,
useReservedNick INT NOT NULL,
canChangeNick INT NOT NULL,
canRegister INT NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx on ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx on ofMucRoom(sericeID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid VARCHAR(255) NOT NULL,
affiliation INT NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255) NULL,
firstName NVARCHAR(100) NULL,
lastName NVARCHAR(100) NULL,
url NVARCHAR(100) NULL,
email NVARCHAR(100) NULL,
faqentry NVARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender TEXT NOT NULL,
nickname NVARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject NVARCHAR(255) NULL,
body TEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
/* PubSub Tables */
CREATE TABLE ofPubsubNode (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent NVARCHAR(100) NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NULL,
persistItems INT NULL,
maxItems INT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
configSubscription INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
payloadType NVARCHAR(100) NULL,
bodyXSLT NVARCHAR(100) NULL,
dataformXSLT NVARCHAR(100) NULL,
creator NVARCHAR(1024) NOT NULL,
description NVARCHAR(255) NULL,
language NVARCHAR(255) NULL,
name NVARCHAR(50) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NULL,
maxLeafNodes INT NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
associationType NVARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
rosterGroup NVARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
affiliation NVARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload TEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
owner NVARCHAR(1024) NOT NULL,
state NVARCHAR(15) NOT NULL,
deliver INT NOT NULL,
digest INT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody INT NOT NULL,
showValues NVARCHAR(30) NOT NULL,
subscriptionType NVARCHAR(10) NOT NULL,
subscriptionDepth INT NOT NULL,
keyword NVARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NOT NULL,
persistItems INT NOT NULL,
maxItems INT NOT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
language NVARCHAR(255) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NOT NULL,
maxLeafNodes INT NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
/* Finally, insert default table values. */
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 1);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 20);
/* Entry for admin user */
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
/* Entry for default conference service */
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
/* $Revision: 1650 $ */
/* $Date: 2005-07-19 20:18:17 -0700 (Tue, 19 Jul 2005) $ */
CREATE TABLE ofUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32) NULL,
encryptedPassword NVARCHAR(255) NULL,
name NVARCHAR(100) NULL,
email VARCHAR(100) NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON ofUser (creationDate ASC);
CREATE TABLE ofUserProp (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofUserProp_pk PRIMARY KEY (username, name)
);
CREATE TABLE ofUserFlag (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
startTime CHAR(15),
endTime CHAR(15),
CONSTRAINT ofUserFlag_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofUserFlag_sTime_idx ON ofUserFlag (startTime ASC);
CREATE INDEX ofUserFlag_eTime_idx ON ofUserFlag (endTime ASC);
CREATE TABLE ofPrivate (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
namespace NVARCHAR(200) NOT NULL,
privateData TEXT NOT NULL,
CONSTRAINT ofPrivate_pk PRIMARY KEY (username, name, namespace)
);
CREATE TABLE ofOffline (
username NVARCHAR(64) NOT NULL,
messageID INTEGER NOT NULL,
creationDate CHAR(15) NOT NULL,
messageSize INTEGER NOT NULL,
stanza TEXT NOT NULL,
CONSTRAINT ofOffline_pk PRIMARY KEY (username, messageID)
);
CREATE TABLE ofPresence (
username NVARCHAR(64) NOT NULL,
offlinePresence TEXT,
offlineDate CHAR(15) NOT NULL,
CONSTRAINT ofPresence_pk PRIMARY KEY (username)
);
CREATE TABLE ofRoster (
rosterID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
jid TEXT NOT NULL,
sub INTEGER NOT NULL,
ask INTEGER NOT NULL,
recv INTEGER NOT NULL,
nick NVARCHAR(255) NULL,
CONSTRAINT ofRoster_pk PRIMARY KEY (rosterID)
);
CREATE INDEX ofRoster_username_idx ON ofRoster (username ASC);
CREATE INDEX ofRoster_jid_idx ON ofRoster (jid ASC);
CREATE TABLE ofRosterGroups (
rosterID INTEGER NOT NULL,
rank INTEGER NOT NULL,
groupName NVARCHAR(255) NOT NULL,
CONSTRAINT ofRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX ofRosterGroups_rosterid_idx ON ofRosterGroups (rosterID ASC);
ALTER TABLE ofRosterGroups ADD CONSTRAINT ofRosterGroups_rosterID_fk FOREIGN KEY (rosterID) REFERENCES ofRoster;
CREATE TABLE ofVCard (
username NVARCHAR(64) NOT NULL,
vcard TEXT NOT NULL,
CONSTRAINT ofVCard_pk PRIMARY KEY (username)
);
CREATE TABLE ofGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255) NULL,
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
CREATE TABLE ofGroupProp (
groupName NVARCHAR(50) NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofGroupProp_pk PRIMARY KEY (groupName, name)
);
CREATE TABLE ofGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE ofID (
idType INTEGER NOT NULL,
id INTEGER NOT NULL,
CONSTRAINT ofID_pk PRIMARY KEY (idType)
);
CREATE TABLE ofProperty (
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofProperty_pk PRIMARY KEY (name)
);
CREATE TABLE ofVersion (
name NVARCHAR(50) NOT NULL,
version INTEGER NOT NULL,
CONSTRAINT ofVersion_pk PRIMARY KEY (name)
);
CREATE TABLE ofExtComponentConf (
subdomain NVARCHAR(255) NOT NULL,
wildcard INT NOT NULL,
secret NVARCHAR(255) NULL,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofExtComponentConf_pk PRIMARY KEY (subdomain)
);
CREATE TABLE ofRemoteServerConf (
xmppDomain NVARCHAR(255) NOT NULL,
remotePort INTEGER NULL,
permission NVARCHAR(10) NOT NULL,
CONSTRAINT ofRemoteServerConf_pk PRIMARY KEY (xmppDomain)
);
CREATE TABLE ofPrivacyList (
username NVARCHAR(64) NOT NULL,
name NVARCHAR(100) NOT NULL,
isDefault INT NOT NULL,
list TEXT NOT NULL,
CONSTRAINT ofPrivacyList_pk PRIMARY KEY (username, name)
);
CREATE INDEX ofPrivacyList_default_idx ON ofPrivacyList (username, isDefault);
CREATE TABLE ofSASLAuthorized (
username NVARCHAR(64) NOT NULL,
principal NVARCHAR(4000) NOT NULL,
CONSTRAINT ofSASLAuthorized_pk PRIMARY KEY (username, principal)
);
CREATE TABLE ofSecurityAuditLog (
msgID INTEGER NOT NULL,
username NVARCHAR(64) NOT NULL,
entryStamp INTEGER NOT NULL,
summary NVARCHAR(255) NOT NULL,
node NVARCHAR(255) NOT NULL,
details TEXT,
CONSTRAINT ofSecurityAuditLog_pk PRIMARY KEY (msgID)
);
CREATE INDEX ofSecurityAuditLog_tstamp_idx ON ofSecurityAuditLog (entryStamp);
CREATE INDEX ofSecurityAuditLog_uname_idx ON ofSecurityAuditLog (username);
/* MUC Tables */
CREATE TABLE ofMucService (
serviceID INT NOT NULL,
subdomain NVARCHAR(255) NOT NULL,
description NVARCHAR(255),
isHidden INT NOT NULL,
CONSTRAINT ofMucService_pk PRIMARY KEY (subdomain)
);
CREATE INDEX ofMucService_serviceid_idx ON ofMucService(serviceID);
CREATE TABLE ofMucServiceProp (
serviceID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucServiceProp_pk PRIMARY KEY (serviceID, name)
);
CREATE TABLE ofMucRoom (
serviceID INT NOT NULL,
roomID INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
name NVARCHAR(50) NOT NULL,
naturalName NVARCHAR(255) NOT NULL,
description NVARCHAR(255) NULL,
lockedDate CHAR(15) NOT NULL,
emptyDate CHAR(15) NULL,
canChangeSubject INT NOT NULL,
maxUsers INT NOT NULL,
publicRoom INT NOT NULL,
moderated INT NOT NULL,
membersOnly INT NOT NULL,
canInvite INT NOT NULL,
roomPassword NVARCHAR(50) NULL,
canDiscoverJID INT NOT NULL,
logEnabled INT NOT NULL,
subject NVARCHAR(100) NULL,
rolesToBroadcast INT NOT NULL,
useReservedNick INT NOT NULL,
canChangeNick INT NOT NULL,
canRegister INT NOT NULL,
CONSTRAINT ofMucRoom_pk PRIMARY KEY (serviceID, name)
);
CREATE INDEX ofMucRoom_roomid_idx on ofMucRoom(roomID);
CREATE INDEX ofMucRoom_serviceid_idx on ofMucRoom(sericeID);
CREATE TABLE ofMucRoomProp (
roomID INT NOT NULL,
name NVARCHAR(100) NOT NULL,
propValue TEXT NOT NULL,
CONSTRAINT ofMucRoomProp_pk PRIMARY KEY (roomID, name)
);
CREATE TABLE ofMucAffiliation (
roomID INT NOT NULL,
jid VARCHAR(255) NOT NULL,
affiliation INT NOT NULL,
CONSTRAINT ofMucAffiliation_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucMember (
roomID INT NOT NULL,
jid NVARCHAR(255) NOT NULL,
nickname NVARCHAR(255) NULL,
firstName NVARCHAR(100) NULL,
lastName NVARCHAR(100) NULL,
url NVARCHAR(100) NULL,
email NVARCHAR(100) NULL,
faqentry NVARCHAR(100) NULL,
CONSTRAINT ofMucMember_pk PRIMARY KEY (roomID,jid)
);
CREATE TABLE ofMucConversationLog (
roomID INT NOT NULL,
sender TEXT NOT NULL,
nickname NVARCHAR(255) NULL,
logTime CHAR(15) NOT NULL,
subject NVARCHAR(255) NULL,
body TEXT NULL
);
CREATE INDEX ofMucConversationLog_time_idx ON ofMucConversationLog (logTime);
/* PubSub Tables */
CREATE TABLE ofPubsubNode (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
parent NVARCHAR(100) NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NULL,
persistItems INT NULL,
maxItems INT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
configSubscription INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
payloadType NVARCHAR(100) NULL,
bodyXSLT NVARCHAR(100) NULL,
dataformXSLT NVARCHAR(100) NULL,
creator NVARCHAR(1024) NOT NULL,
description NVARCHAR(255) NULL,
language NVARCHAR(255) NULL,
name NVARCHAR(50) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NULL,
maxLeafNodes INT NULL,
CONSTRAINT ofPubsubNode_pk PRIMARY KEY (serviceID, nodeID)
);
CREATE TABLE ofPubsubNodeJIDs (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
associationType NVARCHAR(20) NOT NULL,
CONSTRAINT ofPubsubNodeJIDs_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubNodeGroups (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
rosterGroup NVARCHAR(100) NOT NULL
);
CREATE INDEX ofPubsubNodeGroups_idx ON ofPubsubNodeGroups (serviceID, nodeID);
CREATE TABLE ofPubsubAffiliation (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
affiliation NVARCHAR(10) NOT NULL,
CONSTRAINT ofPubsubAffiliation_pk PRIMARY KEY (serviceID, nodeID, jid)
);
CREATE TABLE ofPubsubItem (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
creationDate CHAR(15) NOT NULL,
payload TEXT NULL,
CONSTRAINT ofPubsubItem_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubSubscription (
serviceID NVARCHAR(100) NOT NULL,
nodeID NVARCHAR(100) NOT NULL,
id NVARCHAR(100) NOT NULL,
jid NVARCHAR(1024) NOT NULL,
owner NVARCHAR(1024) NOT NULL,
state NVARCHAR(15) NOT NULL,
deliver INT NOT NULL,
digest INT NOT NULL,
digest_frequency INT NOT NULL,
expire CHAR(15) NULL,
includeBody INT NOT NULL,
showValues NVARCHAR(30) NOT NULL,
subscriptionType NVARCHAR(10) NOT NULL,
subscriptionDepth INT NOT NULL,
keyword NVARCHAR(200) NULL,
CONSTRAINT ofPubsubSubscription_pk PRIMARY KEY (serviceID, nodeID, id)
);
CREATE TABLE ofPubsubDefaultConf (
serviceID NVARCHAR(100) NOT NULL,
leaf INT NOT NULL,
deliverPayloads INT NOT NULL,
maxPayloadSize INT NOT NULL,
persistItems INT NOT NULL,
maxItems INT NOT NULL,
notifyConfigChanges INT NOT NULL,
notifyDelete INT NOT NULL,
notifyRetract INT NOT NULL,
presenceBased INT NOT NULL,
sendItemSubscribe INT NOT NULL,
publisherModel NVARCHAR(15) NOT NULL,
subscriptionEnabled INT NOT NULL,
accessModel NVARCHAR(10) NOT NULL,
language NVARCHAR(255) NULL,
replyPolicy NVARCHAR(15) NULL,
associationPolicy NVARCHAR(15) NOT NULL,
maxLeafNodes INT NOT NULL,
CONSTRAINT ofPubsubDefaultConf_pk PRIMARY KEY (serviceID, leaf)
);
/* Finally, insert default table values. */
INSERT INTO ofID (idType, id) VALUES (18, 1);
INSERT INTO ofID (idType, id) VALUES (19, 1);
INSERT INTO ofID (idType, id) VALUES (23, 1);
INSERT INTO ofID (idType, id) VALUES (26, 2);
INSERT INTO ofVersion (name, version) VALUES ('openfire', 21);
/* Entry for admin user */
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate)
VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
/* Entry for default conference service */
INSERT INTO ofMucService (serviceID, subdomain, isHidden) VALUES (1, 'conference', 0);
-- The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java
-- Update version
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
// The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java
// Update version
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
# The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java
# Update version
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
-- The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java
-- Update version
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
COMMIT;
-- The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java
-- Update version
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
/* The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java */
/* Update version */
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
/* The database update has been implemented in org.jivesoftware.database.bugfix.OF33.java */
/* Update version */
UPDATE ofVersion SET version = 21 WHERE name = 'openfire';
......@@ -19,9 +19,11 @@
package org.jivesoftware.database;
import org.jivesoftware.util.JiveConstants;
import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.LocaleUtils;
import org.jivesoftware.util.Log;
import org.jivesoftware.database.bugfix.OF33;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.container.Plugin;
import org.jivesoftware.openfire.container.PluginManager;
......@@ -55,7 +57,7 @@ public class SchemaManager {
/**
* Current Openfire database schema version.
*/
private static final int DATABASE_VERSION = 20;
private static final int DATABASE_VERSION = 21;
/**
* Creates a new Schema manager.
......@@ -271,6 +273,16 @@ public class SchemaManager {
// Run all upgrade scripts until we're up to the latest schema.
for (int i = currentVersion + 1; i <= requiredVersion; i++) {
InputStream resource = getUpgradeResource(resourceLoader, i, schemaKey);
// apply the 'database-patches-done-in-java'
try {
if (i == 21 && schemaKey.equals("openfire")) {
OF33.executeFix(con);
}
} catch (Exception e) {
Log.error(e);
return false;
}
if (resource == null) {
continue;
}
......
/**
* $Revision$
* $Date$
*
* Copyright (C) 2005-2008 Jive Software. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.database.bugfix;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.jivesoftware.database.DbConnectionManager;
import org.jivesoftware.database.SchemaManager;
import org.jivesoftware.database.SequenceManager;
import org.jivesoftware.util.JiveConstants;
/**
* This class implements a fix for a problem identified as issue OF-33 in the
* bugtracker of Openfire.
* <p>
* The code in this class is intended to be executed only once, under very
* strict circumstances. The only class responsible for calling this code should
* be an instance of {@link SchemaManager}. The database update version
* corresponding to this fix is 21.
*
* @author G&uuml;nther Nie&szlig;
* @see <a href="http://www.igniterealtime.org/issues/browse/OF-33">Openfire
* bugtracker: OF-33</a>
*/
public final class OF33 {
/**
* Check and repair the serviceIDs for the ofMucService table.
*
* @param con
* the database connection to use to check the MultiUserChat
* services.
*/
public static void executeFix(Connection con) {
PreparedStatement pstmt = null;
ResultSet rs = null;
String answer = null;
try {
// Get the current ID for MUC services
pstmt = con.prepareStatement("SELECT id FROM ofID WHERE idType="
+ JiveConstants.MUC_SERVICE);
rs = pstmt.executeQuery();
if (rs.next()) {
answer = rs.getString(1);
}
rs.close();
if (answer == null) {
// No MultiUserService entries are found, so nothing to do.
return;
}
if (answer.equals("1")) {
// The initial configuration wasn't modified. We must only
// update the ID.
pstmt = con
.prepareStatement("UPDATE ofID SET id=2 WHERE idType="
+ JiveConstants.MUC_SERVICE);
pstmt.executeUpdate();
return;
} else {
// Check for duplicated entries with ID=1.
String subdomain = null;
try {
pstmt = con
.prepareStatement("SELECT subdomain FROM ofMucService WHERE serviceID=1");
rs = pstmt.executeQuery();
if (rs.next()) {
subdomain = rs.getString(1);
}
if (subdomain == null || !rs.next()) {
// No duplicated entries found, so nothing to do.
return;
}
subdomain = rs.getString(1);
} finally {
rs.close();
}
// Set new serviceID for duplicated MUC service
long newID = SequenceManager.nextID(JiveConstants.MUC_SERVICE);
pstmt = con
.prepareStatement("UPDATE ofMucService SET serviceID=? WHERE serviceID=1 AND subdomain=?");
pstmt.setLong(1, newID);
pstmt.setString(2, subdomain);
pstmt.executeUpdate();
// Copy service properties.
try {
pstmt = con
.prepareStatement("SELECT name, propValue FROM ofMucServiceProp WHERE serviceID=1");
rs = pstmt.executeQuery();
String name = null;
String value = null;
while (rs.next()) {
name = rs.getString(1);
value = rs.getString(2);
if (name != null && value != null) {
pstmt = con
.prepareStatement("INSERT INTO ofMucServiceProp(serviceID, name, propValue) "
+ "VALUES(?,?,?)");
pstmt.setLong(1, newID);
pstmt.setString(2, name);
pstmt.setString(3, value);
pstmt.executeUpdate();
}
}
} finally {
rs.close();
}
// Copy rooms.
try {
Long roomID, newRoomID;
ResultSet roomRS = null;
pstmt = con
.prepareStatement("SELECT roomID, creationDate, modificationDate, "
+ "name, naturalName, description, lockedDate, emptyDate, "
+ "canChangeSubject, maxUsers, publicRoom, moderated, membersOnly, "
+ "canInvite, roomPassword, canDiscoverJID, logEnabled, subject, "
+ "rolesToBroadcast, useReservedNick, canChangeNick, canRegister "
+ "FROM ofMucRoom WHERE serviceID=1");
rs = pstmt.executeQuery();
while (rs.next()) {
roomID = rs.getLong(1);
newRoomID = SequenceManager
.nextID(JiveConstants.MUC_ROOM);
pstmt = con
.prepareStatement("INSERT INTO ofMucRoom (serviceID, roomID, "
+ "creationDate, modificationDate, name, naturalName, description, "
+ "lockedDate, emptyDate, canChangeSubject, maxUsers, publicRoom, "
+ "moderated, membersOnly, canInvite, roomPassword, canDiscoverJID, "
+ "logEnabled, subject, rolesToBroadcast, useReservedNick, "
+ "canChangeNick, canRegister) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
pstmt.setLong(1, newID);
pstmt.setLong(2, newRoomID);
pstmt.setString(3, rs.getString(2));
pstmt.setString(4, rs.getString(3));
pstmt.setString(5, rs.getString(4));
pstmt.setString(6, rs.getString(5));
pstmt.setString(7, rs.getString(6));
pstmt.setString(8, rs.getString(7));
pstmt.setString(9, rs.getString(8));
pstmt.setInt(10, rs.getInt(9));
pstmt.setInt(11, rs.getInt(10));
pstmt.setInt(12, rs.getInt(11));
pstmt.setInt(13, rs.getInt(12));
pstmt.setInt(14, rs.getInt(13));
pstmt.setInt(15, rs.getInt(14));
pstmt.setString(16, rs.getString(15));
pstmt.setInt(17, rs.getInt(16));
pstmt.setInt(18, rs.getInt(17));
pstmt.setString(19, rs.getString(18));
pstmt.setInt(20, rs.getInt(19));
pstmt.setInt(21, rs.getInt(20));
pstmt.setInt(22, rs.getInt(21));
pstmt.setInt(23, rs.getInt(22));
pstmt.executeUpdate();
// Copy room properties.
try {
pstmt = con
.prepareStatement("SELECT name, propValue FROM ofMucRoomProp WHERE roomID=?");
pstmt.setLong(1, roomID);
roomRS = pstmt.executeQuery();
String name = null;
String value = null;
while (roomRS.next()) {
name = roomRS.getString(1);
value = roomRS.getString(2);
if (name != null && value != null) {
pstmt = con
.prepareStatement("INSERT INTO ofMucRoomProp(roomID, name, propValue) "
+ "VALUES(?,?,?)");
pstmt.setLong(1, newRoomID);
pstmt.setString(2, name);
pstmt.setString(3, value);
pstmt.executeUpdate();
}
}
} finally {
roomRS.close();
}
// Copy affiliations.
try {
pstmt = con
.prepareStatement("SELECT jid, affiliation FROM ofMucAffiliation WHERE roomID=?");
pstmt.setLong(1, roomID);
roomRS = pstmt.executeQuery();
while (roomRS.next()) {
pstmt = con
.prepareStatement("INSERT INTO ofMucAffiliation(roomID, jid, affiliation) "
+ "VALUES(?,?,?)");
pstmt.setLong(1, newRoomID);
pstmt.setString(2, roomRS.getString(1));
pstmt.setInt(3, roomRS.getInt(2));
pstmt.executeUpdate();
}
} finally {
roomRS.close();
}
// Copy members.
try {
pstmt = con
.prepareStatement("SELECT jid, nickname, firstName, lastName, url, email, faqentry "
+ "FROM ofMucMember WHERE roomID=?");
pstmt.setLong(1, roomID);
roomRS = pstmt.executeQuery();
while (roomRS.next()) {
pstmt = con
.prepareStatement("INSERT INTO ofMucMember(roomID, jid, nickname, firstName, "
+ "lastName, url, email, faqentry) VALUES(?,?,?,?,?,?,?,?)");
pstmt.setLong(1, newRoomID);
pstmt.setString(2, roomRS.getString(1));
pstmt.setString(3, roomRS.getString(2));
pstmt.setString(4, roomRS.getString(3));
pstmt.setString(5, roomRS.getString(4));
pstmt.setString(6, roomRS.getString(5));
pstmt.setString(7, roomRS.getString(6));
pstmt.setString(8, roomRS.getString(7));
pstmt.executeUpdate();
}
} finally {
roomRS.close();
}
// Copy conversation history.
try {
pstmt = con
.prepareStatement("SELECT sender, nickname, logTime, subject, body "
+ "FROM ofMucConversationLog WHERE roomID=?");
pstmt.setLong(1, roomID);
roomRS = pstmt.executeQuery();
while (roomRS.next()) {
pstmt = con
.prepareStatement("INSERT INTO ofMucConversationLog(roomID, "
+ "sender, nickname, logTime, subject, body VALUES(?,?,?,?,?,?)");
pstmt.setLong(1, newRoomID);
pstmt.setString(2, roomRS.getString(1));
pstmt.setString(3, roomRS.getString(2));
pstmt.setString(4, roomRS.getString(3));
pstmt.setString(5, roomRS.getString(4));
pstmt.setString(6, roomRS.getString(5));
pstmt.executeUpdate();
}
} finally {
roomRS.close();
}
}
} finally {
rs.close();
}
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
DbConnectionManager.closeStatement(pstmt);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment