forked from extern/egroupware
removed those reserved words. added the sequences. triggers still missing.
This commit is contained in:
parent
41fae14630
commit
7355ddb1f5
@ -1,10 +1,22 @@
|
|||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- Create_Tables Script for Oracle --
|
||||||
|
-- not yet completed and not yet fully working. The trigger functions still --
|
||||||
|
-- need to be built and I couldn't figure out yet how to do this... --
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
create table applications (
|
|
||||||
app_name varchar(25) NOT NULL,
|
------------------
|
||||||
app_title varchar(50),
|
-- APPLICATIONS --
|
||||||
app_enabled int,
|
------------------
|
||||||
unique(app_name)
|
|
||||||
);
|
CREATE TABLE applications (
|
||||||
|
app_name varchar2(25) NOT NULL,
|
||||||
|
app_title varchar2(50),
|
||||||
|
app_enabled int
|
||||||
|
);
|
||||||
|
|
||||||
|
create unique index applications_app_name
|
||||||
|
on applications (app_name);
|
||||||
|
|
||||||
insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1);
|
insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1);
|
||||||
insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1);
|
insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1);
|
||||||
@ -15,71 +27,86 @@ insert into applications (app_name, app_title, app_enabled) values ('email', 'Em
|
|||||||
insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1);
|
insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1);
|
||||||
insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0);
|
insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0);
|
||||||
|
|
||||||
create function get_seq(seq_table in varchar2(40))
|
--------------
|
||||||
return number is
|
-- ACCOUNTS --
|
||||||
seq number(11);
|
--------------
|
||||||
begin
|
|
||||||
select seq_table.nextval into seq from dual;
|
|
||||||
return(seq);
|
|
||||||
end
|
|
||||||
|
|
||||||
create sequence accounts_seq;
|
CREATE TABLE accounts (
|
||||||
# we need to write an insert trigger for autoincrementation
|
con number(11) DEFAULT '0' NOT NULL , --auto-increment
|
||||||
create table accounts (
|
loginid varchar2(25) NOT NULL,
|
||||||
con int default get_seq(accounts_seq),
|
passwd varchar2(32) NOT NULL,
|
||||||
loginid varchar(25) NOT NULL,
|
firstname varchar2(50),
|
||||||
passwd char(32) NOT NULL,
|
lastname varchar2(50),
|
||||||
firstname varchar(50),
|
|
||||||
lastname varchar(50),
|
|
||||||
permissions text,
|
permissions text,
|
||||||
groups varchar(30),
|
groups varchar2(30),
|
||||||
lastlogin int,
|
lastlogin number(11),
|
||||||
lastloginfrom varchar(255),
|
lastloginfrom varchar2(255),
|
||||||
lastpasswd_change int,
|
lastpasswd_change number(11),
|
||||||
status char(1),
|
status varchar2(40) DEFAULT 'A' check (status in ('A','L')) NOT NULL,
|
||||||
unique(loginid),unique(con)
|
PRIMARY KEY (con)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
create unique index accounts_loginid
|
||||||
|
on accounts (loginid);
|
||||||
|
|
||||||
|
create sequence accounts_seq
|
||||||
|
increment by 1
|
||||||
|
start with 0
|
||||||
|
maxvalue 999999999
|
||||||
|
minvalue 0
|
||||||
|
nocycle
|
||||||
|
nocache;
|
||||||
|
|
||||||
|
-- this trigger unfortunately does not work, since "NEW or OLD references are
|
||||||
|
-- not allowed in table level triggers" (oracle error msg quoted here). But we
|
||||||
|
-- need to define some triggers like this for each table that needs the
|
||||||
|
-- auto-increment function:
|
||||||
|
--
|
||||||
|
-- create trigger accounts_trg
|
||||||
|
-- before insert into accounts
|
||||||
|
-- begin
|
||||||
|
-- :new.con := accounts_seq.nextid;
|
||||||
|
-- end;
|
||||||
|
-- /
|
||||||
|
|
||||||
insert into accounts (loginid,passwd,firstname,lastname,permissions,groups,
|
insert into accounts (loginid,passwd,firstname,lastname,permissions,groups,
|
||||||
status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account',
|
status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account',
|
||||||
':admin:email:todo:addressbook:calendar:hr:',',1,','A');
|
':admin:email:todo:addressbook:calendar:hr:',',1,','A');
|
||||||
|
|
||||||
|
|
||||||
|
------------
|
||||||
|
-- GROUPS --
|
||||||
|
------------
|
||||||
|
|
||||||
create sequence groups_seq;
|
|
||||||
# we need to write an insert trigger for autoincrementation
|
|
||||||
create table groups (
|
create table groups (
|
||||||
group_id int default get_seq(groups_seq),
|
group_id int NOT NULL , --auto-increment
|
||||||
group_name varchar(50),
|
group_name varchar2(255),
|
||||||
group_apps varchar(255),
|
group_apps varchar2(255),
|
||||||
unique(group_id)
|
primary key(group_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
create sequence groups_seq
|
||||||
|
increment by 1
|
||||||
|
start with 0
|
||||||
|
maxvalue 999999999
|
||||||
|
minvalue 0
|
||||||
|
nocycle
|
||||||
|
nocache;
|
||||||
|
|
||||||
insert into groups (group_name) values ('Default');
|
insert into groups (group_name) values ('Default');
|
||||||
|
|
||||||
create table sessions (
|
|
||||||
sessionid varchar(255),
|
|
||||||
loginid varchar(20),
|
|
||||||
passwd varchar(255),
|
|
||||||
ip varchar(255),
|
|
||||||
logintime int,
|
|
||||||
dla int,
|
|
||||||
unique(sessionid)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE app_sessions (
|
-----------------
|
||||||
sessionid varchar(255) NOT NULL,
|
-- PREFERENCES --
|
||||||
loginid varchar(20),
|
-----------------
|
||||||
app varchar(20),
|
|
||||||
content text
|
|
||||||
);
|
|
||||||
|
|
||||||
create table preferences (
|
CREATE TABLE preferences (
|
||||||
owner varchar(20),
|
owner varchar2(20),
|
||||||
name varchar(50),
|
name varchar2(50),
|
||||||
value varchar(50)
|
value varchar2(50)
|
||||||
);
|
);
|
||||||
|
|
||||||
insert into preferences values ('demo','maxmatchs','10');
|
insert into preferences values ('demo','maxmatchs','10');
|
||||||
insert into preferences values ('demo','email_sig','');
|
|
||||||
insert into preferences values ('demo','mainscreen_showbirthdays','True');
|
insert into preferences values ('demo','mainscreen_showbirthdays','True');
|
||||||
insert into preferences values ('demo','mainscreen_showevents','True');
|
insert into preferences values ('demo','mainscreen_showevents','True');
|
||||||
insert into preferences values ('demo','timeformat','12');
|
insert into preferences values ('demo','timeformat','12');
|
||||||
@ -87,127 +114,243 @@ insert into preferences values ('demo','dateformat','m/d/Y');
|
|||||||
insert into preferences values ('demo','theme','default');
|
insert into preferences values ('demo','theme','default');
|
||||||
insert into preferences values ('demo','tz_offset','0');
|
insert into preferences values ('demo','tz_offset','0');
|
||||||
|
|
||||||
|
|
||||||
|
--------------
|
||||||
|
-- SESSIONS --
|
||||||
|
--------------
|
||||||
|
|
||||||
|
CREATE TABLE sessions (
|
||||||
|
sessionid varchar2(255) NOT NULL,
|
||||||
|
loginid varchar2(20),
|
||||||
|
passwd varchar2(255),
|
||||||
|
ip varchar2(255),
|
||||||
|
logintime number(11),
|
||||||
|
dla number(11)
|
||||||
|
);
|
||||||
|
|
||||||
|
create unique index sessions_sessionid
|
||||||
|
on sessions (sessionid);
|
||||||
|
|
||||||
|
|
||||||
|
------------------
|
||||||
|
-- APP_SESSIONS --
|
||||||
|
------------------
|
||||||
|
|
||||||
|
CREATE TABLE app_sessions (
|
||||||
|
sessionid varchar2(255) NOT NULL,
|
||||||
|
loginid varchar2(20),
|
||||||
|
app varchar2(20),
|
||||||
|
content text
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
----------------
|
||||||
|
-- ACCESS_LOG --
|
||||||
|
----------------
|
||||||
|
|
||||||
create table access_log (
|
create table access_log (
|
||||||
sessionid varchar(30),
|
sessionid varchar2(30),
|
||||||
loginid varchar(30),
|
loginid varchar2(30),
|
||||||
ip varchar(30),
|
ip varchar2(30),
|
||||||
li int,
|
li int,
|
||||||
lo int
|
lo int
|
||||||
);
|
);
|
||||||
|
|
||||||
create sequence profiles_seq;
|
|
||||||
# we need to write an insert trigger for autoincrementation
|
--------------
|
||||||
|
-- PROFILES --
|
||||||
|
--------------
|
||||||
|
|
||||||
CREATE TABLE profiles (
|
CREATE TABLE profiles (
|
||||||
con int default get_seq(profiles_seq),
|
con number(11) DEFAULT '0' NOT NULL , --auto-increment
|
||||||
owner varchar(20),
|
owner varchar2(20),
|
||||||
title varchar(255),
|
title varchar2(255),
|
||||||
phone_number varchar(255),
|
phone_number varchar2(255),
|
||||||
comments text,
|
comments varchar2(4000),
|
||||||
picture_format varchar(255),
|
picture_format varchar2(255),
|
||||||
picture text,
|
picture blob,
|
||||||
unique(con)
|
PRIMARY KEY (con)
|
||||||
);
|
);
|
||||||
|
|
||||||
create sequence addressbook_seq;
|
create sequence profiles_seq
|
||||||
# we need to write an insert trigger for autoincrementation
|
increment by 1
|
||||||
create table addressbook (
|
start with 0
|
||||||
con int default get_seq(addressbook_seq),
|
maxvalue 999999999
|
||||||
owner varchar(25),
|
minvalue 0
|
||||||
access varchar(10),
|
nocycle
|
||||||
firstname varchar(255),
|
nocache;
|
||||||
lastname varchar(255),
|
|
||||||
email varchar(255),
|
|
||||||
hphone varchar(255),
|
-----------------
|
||||||
wphone varchar(255),
|
-- ADDRESSBOOK --
|
||||||
fax varchar(255),
|
-----------------
|
||||||
pager varchar(255),
|
|
||||||
mphone varchar(255),
|
CREATE TABLE addressbook (
|
||||||
ophone varchar(255),
|
con number(11) DEFAULT '0' NOT NULL , --auto-increment
|
||||||
street varchar(255),
|
owner varchar2(25),
|
||||||
city varchar(255),
|
addr_access varchar2(10),
|
||||||
state varchar(255),
|
firstname varchar2(255),
|
||||||
zip varchar(255),
|
lastname varchar2(255),
|
||||||
bday varchar(255),
|
email varchar2(255),
|
||||||
notes TEXT,
|
hphone varchar2(255),
|
||||||
company varchar(255),
|
wphone varchar2(255),
|
||||||
unique(con)
|
fax varchar2(255),
|
||||||
|
pager varchar2(255),
|
||||||
|
mphone varchar2(255),
|
||||||
|
ophone varchar2(255),
|
||||||
|
street varchar2(255),
|
||||||
|
city varchar2(255),
|
||||||
|
state varchar2(255),
|
||||||
|
zip varchar2(255),
|
||||||
|
bday varchar2(255),
|
||||||
|
notes text,
|
||||||
|
company varchar2(255),
|
||||||
|
PRIMARY KEY (con)
|
||||||
);
|
);
|
||||||
|
|
||||||
create sequence todo_seq;
|
create sequence addressbook_seq
|
||||||
# we need to write an insert trigger for autoincrementation
|
increment by 1
|
||||||
create table todo (
|
start with 0
|
||||||
con int default get_seq(todo_seq),
|
maxvalue 999999999
|
||||||
owner varchar(25),
|
minvalue 0
|
||||||
access varchar(10),
|
nocycle
|
||||||
des text,
|
nocache;
|
||||||
pri int,
|
|
||||||
status int,
|
|
||||||
datecreated int,
|
----------
|
||||||
datedue int,
|
-- TODO --
|
||||||
unique(con)
|
----------
|
||||||
|
|
||||||
|
CREATE TABLE todo (
|
||||||
|
con number(11) DEFAULT '0' NOT NULL , --auto-increment
|
||||||
|
owner varchar2(25),
|
||||||
|
todo_access varchar2(10),
|
||||||
|
des text,
|
||||||
|
pri number(11),
|
||||||
|
status number(11),
|
||||||
|
datecreated number(11),
|
||||||
|
datedue number(11),
|
||||||
|
PRIMARY KEY (con)
|
||||||
);
|
);
|
||||||
|
|
||||||
create sequence webcal_entry_seq;
|
create sequence todo_seq
|
||||||
# we need to write an insert trigger for autoincrementation
|
increment by 1
|
||||||
|
start with 0
|
||||||
|
maxvalue 999999999
|
||||||
|
minvalue 0
|
||||||
|
nocycle
|
||||||
|
nocache;
|
||||||
|
|
||||||
|
|
||||||
|
------------------
|
||||||
|
-- WEBCAL_ENTRY --
|
||||||
|
------------------
|
||||||
|
|
||||||
CREATE TABLE webcal_entry (
|
CREATE TABLE webcal_entry (
|
||||||
cal_id int default get_seq(webcal_entry_seq),
|
cal_id number(11) DEFAULT '0' NOT NULL , --auto-increment
|
||||||
cal_group_id int NULL,
|
cal_group_id number(11),
|
||||||
cal_create_by varchar(25) NOT NULL,
|
cal_create_by varchar2(25) NOT NULL,
|
||||||
cal_date int NOT NULL,
|
cal_date number(11) DEFAULT '0' NOT NULL,
|
||||||
cal_time int NULL,
|
cal_time number(11),
|
||||||
cal_mod_date int,
|
cal_mod_date number(11),
|
||||||
cal_mod_time int,
|
cal_mod_time number(11),
|
||||||
cal_duration int NOT NULL,
|
cal_duration number(11) DEFAULT '0' NOT NULL,
|
||||||
cal_priority int DEFAULT 2,
|
cal_priority number(11) DEFAULT '2',
|
||||||
cal_type varchar(10),
|
cal_type varchar2(10),
|
||||||
cal_access varchar(10),
|
cal_access char(10),
|
||||||
cal_name varchar(80) NOT NULL,
|
cal_name varchar2(80) NOT NULL,
|
||||||
cal_description TEXT,
|
cal_description varchar2(4000),
|
||||||
unique(cal_id)
|
PRIMARY KEY (cal_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE webcal_entry_user (
|
create sequence webcal_entry_seq
|
||||||
cal_id int NOT NULL,
|
increment by 1
|
||||||
cal_login varchar(25) NOT NULL,
|
start with 0
|
||||||
cal_status char(1) DEFAULT 'A'
|
maxvalue 999999999
|
||||||
);
|
minvalue 0
|
||||||
|
nocycle
|
||||||
|
nocache;
|
||||||
|
|
||||||
create table webcal_entry_repeats (
|
|
||||||
cal_id int,
|
--------------------------
|
||||||
cal_type varchar(20),
|
-- WEBCAL_ENTRY_REPEATS --
|
||||||
cal_end int,
|
--------------------------
|
||||||
cal_frequency int default 1,
|
|
||||||
|
CREATE TABLE webcal_entry_repeats (
|
||||||
|
cal_id number(11) DEFAULT '0' NOT NULL,
|
||||||
|
cal_type varchar2(40) DEFAULT 'daily' check (cal_type in ('daily','weekly','monthlyByDay','monthlyByDate','yearly')) NOT NULL,
|
||||||
|
cal_end number(11),
|
||||||
|
cal_frequency number(11) DEFAULT '1',
|
||||||
cal_days char(7)
|
cal_days char(7)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
------------------------
|
||||||
|
-- WEBCAL_ENTRY_USERS --
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
CREATE TABLE webcal_entry_user (
|
||||||
|
cal_id number(11) DEFAULT '0' NOT NULL,
|
||||||
|
cal_login varchar2(25) NOT NULL,
|
||||||
|
cal_status char(1) DEFAULT 'A',
|
||||||
|
PRIMARY KEY (cal_id, cal_login)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
-- WEBCAL_ENTRY_GROUPS --
|
||||||
|
-------------------------
|
||||||
|
|
||||||
create table webcal_entry_groups (
|
create table webcal_entry_groups (
|
||||||
cal_id int,
|
cal_id int,
|
||||||
groups varchar(255)
|
groups varchar2(255)
|
||||||
);
|
);
|
||||||
|
|
||||||
create sequence newsgroups_seq;
|
|
||||||
# we need to write an insert trigger for autoincrementation
|
----------------
|
||||||
|
-- NEWSGROUPS --
|
||||||
|
----------------
|
||||||
|
|
||||||
CREATE TABLE newsgroups (
|
CREATE TABLE newsgroups (
|
||||||
con int default get_seq(newsgroups_seq),
|
con number(11) NOT NULL , --auto-increment
|
||||||
name varchar(255) NOT NULL,
|
name varchar2(255) NOT NULL,
|
||||||
messagecount int NOT NULL,
|
messagecount number(11) NOT NULL,
|
||||||
lastmessage int NOT NULL,
|
lastmessage number(11) NOT NULL,
|
||||||
active char DEFAULT 'N' NOT NULL,
|
active char DEFAULT 'N' NOT NULL,
|
||||||
lastread int,
|
lastread number(11),
|
||||||
unique(con)
|
PRIMARY KEY (con)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
create unique index newsgroups_name
|
||||||
|
on newsgroups (name);
|
||||||
|
|
||||||
|
create sequence newsgroups_seq
|
||||||
|
increment by 1
|
||||||
|
start with 0
|
||||||
|
maxvalue 999999999
|
||||||
|
minvalue 0
|
||||||
|
nocycle
|
||||||
|
nocache;
|
||||||
|
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
-- USERS_NEWSGOUPS --
|
||||||
|
---------------------
|
||||||
|
|
||||||
CREATE TABLE users_newsgroups (
|
CREATE TABLE users_newsgroups (
|
||||||
owner int NOT NULL,
|
owner number(11) NOT NULL,
|
||||||
newsgroup int NOT NULL
|
newsgroup number(11) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
----------
|
||||||
|
-- LANG --
|
||||||
|
----------
|
||||||
|
|
||||||
CREATE TABLE lang (
|
CREATE TABLE lang (
|
||||||
message_id varchar(150) DEFAULT '' NOT NULL,
|
message_id varchar2(150) NOT NULL,
|
||||||
app_name varchar(100) DEFAULT 'common' NOT NULL,
|
app_name varchar2(100) DEFAULT 'common' NOT NULL,
|
||||||
lang varchar(5) DEFAULT '' NOT NULL,
|
lang varchar2(5) NOT NULL,
|
||||||
content text NOT NULL,
|
content varchar2(4000) NOT NULL,
|
||||||
unique(message_id,app_name,lang)
|
PRIMARY KEY (message_id,app_name,lang)
|
||||||
);
|
);
|
||||||
|
|
||||||
COMMIT;
|
|
||||||
|
Loading…
Reference in New Issue
Block a user