------------------------------------------------------------------------------ -- 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... -- ------------------------------------------------------------------------------ -- $Id$ ------------------ -- 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 number, app_order number, app_tables varchar2(255) ); create unique index applications_app_name on applications (app_name); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('admin', 'Administration', 1, 1, NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('tts', 'Trouble Ticket System', 0, 2, NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('inv', 'Inventory', 0, 3, NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('chat', 'Chat', 0, 4, NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('headlines', 'Headlines', 0, 5, 'news_sites,news_headlines,users_headlines'); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('filemanager', 'File manager', 1, 6, NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('addressbook', 'Address Book', 1, 7, 'addressbook'); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('todo', 'ToDo List', 1, 8, 'todo'); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('calendar', 'Calendar', 1, 9, 'webcal_entry,webcal_entry_users,webcal_entry_groups,webcal_repeats'); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('email', 'Email', 1, 10,NULL); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('nntp', 'NNTP', 1, 11, 'newsgroups,users_newsgroups'); insert into applications (app_name, app_title, app_enabled, app_order, app_tables) values ('cron_apps', 'cron_apps', 0, 0, NULL); -------------- -- ACCOUNTS -- -------------- CREATE TABLE accounts ( account_id number NOT NULL, account_lid varchar2(25) NOT NULL, account_pwd varchar2(32) NOT NULL, account_firstname varchar2(50), account_lastname varchar2(50), account_permissions varchar2(255), account_groups varchar2(30), account_lastlogin number(11), account_lastloginfrom varchar2(255), account_lastpwd_change number(11), account_status varchar2(40) DEFAULT 'A' check (status in ('A','L')) NOT NULL, PRIMARY KEY (account_id) ); create unique index accounts_loginid on accounts (account_lid); 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.account_id from dual; end; / insert into accounts (account_lid,account_pwd,account_firstname,account_lastname,account_permissions,account_groups, account_status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account',':admin:email:todo:addressbook:calendar:',',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 ( preference_owner varchar2(20), preference_name varchar2(50), preference_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 ( session_id varchar2(255) NOT NULL, session_lid varchar2(20), session_pwd varchar2(255), session_ip varchar2(255), session_logintime number(11), session_dla number(11) ); create unique index sessions_sessionid on sessions (session_id); ------------------ -- 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 number(11), lo number(11) ); -------------- -- 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 ( ab_id number NOT NULL, ab_owner varchar2(25), ab_addr_access varchar2(10), ab_firstname varchar2(255), ab_lastname varchar2(255), ab_email varchar2(255), ab_hphone varchar2(255), ab_wphone varchar2(255), ab_fax varchar2(255), ab_pager varchar2(255), ab_mphone varchar2(255), ab_ophone varchar2(255), ab_street varchar2(255), ab_city varchar2(255), ab_state varchar2(255), ab_zip varchar2(255), ab_bday varchar2(255), ab_notes varchar2(4000), ab_company varchar2(255), PRIMARY KEY (ab_id) ); 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.ab_id from dual; end; / ---------- -- TODO -- ---------- CREATE TABLE todo ( todo_id number NOT NULL, todo_owner varchar2(25), todo_access varchar2(10), todo_des varchar2(4000), todo_pri number(11), todo_status number(11), todo_datecreated number(11), todo_datedue number(11), PRIMARY KEY (todo_id) ); 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.todo_id 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;