------------------------------------------------------------------------------ -- 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... -- ------------------------------------------------------------------------------ ------------------ -- APPLICATIONS -- ------------------ connect system/system; CREATE TABLESPACE phpgw DATAFILE 'diskb:tablespace_phpgw.dat' SIZE 500K REUSE AUTOEXTEND ON NEXT 500K MAXSIZE 10M; CREATE USER phpgw IDENTIFIED BY phpgw DEFAULT TABLESPACE phpgw QUOTA 10M ON phpgw; GRANT connect TO phpgw; GRANT dba TO phpgw; connect phpgw/phpgw; 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 ('filemanager', 'File manager', 1); insert into applications (app_name, app_title, app_enabled) values ('addressbook', 'Address Book', 1); insert into applications (app_name, app_title, app_enabled) values ('todo', 'ToDo List', 1); insert into applications (app_name, app_title, app_enabled) values ('calendar', 'Calendar', 1); insert into applications (app_name, app_title, app_enabled) values ('email', 'Email', 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); -------------- -- ACCOUNTS -- -------------- CREATE TABLE accounts ( con number NOT NULL, loginid varchar2(25) NOT NULL, passwd varchar2(32) NOT NULL, firstname varchar2(50), lastname varchar2(50), permissions varchar2(255), groups varchar2(30), lastlogin number(11), lastloginfrom varchar2(255), lastpasswd_change number(11), status varchar2(40) DEFAULT 'A' check (status in ('A','L')) NOT NULL, 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; create trigger accounts_bri before insert on accounts for each row begin select accounts_seq.nextval into :new.con from dual; end; / insert into accounts (loginid,passwd,firstname,lastname,permissions,groups, status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account', ':admin:email:todo:addressbook:calendar:hr:',',1,','A'); ------------ -- GROUPS -- ------------ create table groups ( group_id number NOT NULL, group_name varchar2(255), group_apps varchar2(255), primary key(group_id) ); create sequence groups_seq increment by 1 start with 0 maxvalue 999999999 minvalue 0 nocycle nocache; create trigger groups_bri before insert on groups for each row begin select groups_seq.nextval into :new.group_id from dual; end; / insert into groups (group_name) values ('Default'); ----------------- -- PREFERENCES -- ----------------- CREATE TABLE preferences ( owner varchar2(20), name varchar2(50), value varchar2(50) ); insert into preferences values ('demo','maxmatchs','10'); insert into preferences values ('demo','mainscreen_showbirthdays','True'); insert into preferences values ('demo','mainscreen_showevents','True'); insert into preferences values ('demo','timeformat','12'); insert into preferences values ('demo','dateformat','m/d/Y'); insert into preferences values ('demo','theme','default'); 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 varchar2(2000) ); ---------------- -- ACCESS_LOG -- ---------------- create table access_log ( sessionid varchar2(30), loginid varchar2(30), ip varchar2(30), li int, lo int ); -------------- -- PROFILES -- -------------- CREATE TABLE profiles ( con number NOT NULL, owner varchar2(20), title varchar2(255), phone_number varchar2(255), comments varchar2(4000), picture_format varchar2(255), picture blob, PRIMARY KEY (con) ); create sequence profiles_seq increment by 1 start with 0 maxvalue 999999999 minvalue 0 nocycle nocache; create trigger profiles_bri before insert on profiles for each row begin select profiles_seq.nextval into :new.con from dual; end; / ----------------- -- ADDRESSBOOK -- ----------------- CREATE TABLE addressbook ( con number(11) DEFAULT '0' NOT NULL , --auto-increment owner varchar2(25), addr_access varchar2(10), firstname varchar2(255), lastname varchar2(255), email varchar2(255), hphone varchar2(255), wphone varchar2(255), 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 varchar2(4000), company varchar2(255), PRIMARY KEY (con) ); create sequence addressbook_seq increment by 1 start with 0 maxvalue 999999999 minvalue 0 nocycle nocache; create trigger addressbook_bri before insert on addressbook for each row begin select addressbook_seq.nextval into :new.con from dual; end; / ---------- -- TODO -- ---------- CREATE TABLE todo ( con number NOT NULL, owner varchar2(25), todo_access varchar2(10), des varchar2(4000), pri number(11), status number(11), datecreated number(11), datedue number(11), PRIMARY KEY (con) ); create sequence todo_seq increment by 1 start with 0 maxvalue 999999999 minvalue 0 nocycle nocache; create trigger todo_bri before insert on todo for each row begin select todo_seq.nextval into :new.con from dual; end; / ------------------ -- WEBCAL_ENTRY -- ------------------ CREATE TABLE webcal_entry ( cal_id number NOT NULL, cal_group_id number(11), cal_create_by varchar2(25) NOT NULL, cal_date number(11) DEFAULT '0' NOT NULL, cal_time number(11), cal_mod_date number(11), cal_mod_time number(11), cal_duration number(11) DEFAULT '0' NOT NULL, cal_priority number(11) DEFAULT '2', cal_type varchar2(10), cal_access char(10), cal_name varchar2(80) NOT NULL, cal_description varchar2(4000), PRIMARY KEY (cal_id) ); create sequence webcal_entry_seq increment by 1 start with 0 maxvalue 999999999 minvalue 0 nocycle nocache; create trigger webcal_entry_bri before insert on webcal_entry for each row begin select webcal_entry_seq.nextval into :new.cal_id from dual; end; / -------------------------- -- WEBCAL_ENTRY_REPEATS -- -------------------------- CREATE TABLE webcal_entry_repeats ( cal_id number 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) ); ------------------------ -- WEBCAL_ENTRY_USERS -- ------------------------ CREATE TABLE webcal_entry_user ( cal_id number 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 ( cal_id number not null, groups varchar2(255) ); ---------------- -- NEWSGROUPS -- ---------------- CREATE TABLE newsgroups ( con number NOT NULL, name varchar2(255) NOT NULL, messagecount number(11) NOT NULL, lastmessage number(11) NOT NULL, active char DEFAULT 'N' NOT NULL, lastread number(11), 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; create trigger newsgroups_bri before insert on newsgroups for each row begin select newsgroups_seq.nextval into :new.con from dual; end; / --------------------- -- USERS_NEWSGOUPS -- --------------------- CREATE TABLE users_newsgroups ( owner number NOT NULL, newsgroup number NOT NULL ); ---------- -- LANG -- ---------- CREATE TABLE lang ( message_id varchar2(150) NOT NULL, app_name varchar2(100) DEFAULT 'common' NOT NULL, lang varchar2(5) NOT NULL, content varchar2(4000) NOT NULL, PRIMARY KEY (message_id,app_name,lang) ); connect system/system; REVOKE dba FROM phpgw; commit;