CREATE TABLE m_config_t ( config_id VARCHAR(64) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, access_reqd NUMBER(10) DEFAULT 0, type NUMBER(10) DEFAULT 90, value CLOB NOT NULL, PRIMARY KEY (config_id, project_id, user_id) ); CREATE INDEX idx_config ON m_config_t (config_id); CREATE TABLE m_bug_file_t ( id NUMBER(10) NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, title VARCHAR(250) DEFAULT '', description VARCHAR(250) DEFAULT '', diskfile VARCHAR(250) DEFAULT '', filename VARCHAR(250) DEFAULT '', folder VARCHAR(250) DEFAULT '', filesize NUMBER(10) DEFAULT 0 NOT NULL, file_type VARCHAR(250) DEFAULT '', date_added DATE DEFAULT null NOT NULL, content BLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bug_file_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bug_file_t BEFORE insert ON m_bug_file_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bug_file_t.nextval into :new.id from dual; END; / CREATE INDEX idx_bug_file_bug_id ON m_bug_file_t (bug_id); CREATE TABLE m_bug_history_t ( id NUMBER(10) NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, date_modified DATE DEFAULT null NOT NULL, field_name VARCHAR(32) DEFAULT '', old_value VARCHAR(128) DEFAULT '', new_value VARCHAR(128) DEFAULT '', type NUMBER(5) DEFAULT 0 NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bug_history_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bug_history_t BEFORE insert ON m_bug_history_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bug_history_t.nextval into :new.id from dual; END; / CREATE INDEX idx_bug_history_bug_id ON m_bug_history_t (bug_id); CREATE INDEX idx_history_user_id ON m_bug_history_t (user_id); CREATE TABLE m_bug_monitor_t ( user_id NUMBER(10) DEFAULT 0 NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, PRIMARY KEY (user_id, bug_id) ); CREATE TABLE m_bug_relationship_t ( id NUMBER(10) NOT NULL, source_bug_id NUMBER(10) DEFAULT 0 NOT NULL, destination_bug_id NUMBER(10) DEFAULT 0 NOT NULL, relationship_type NUMBER(5) DEFAULT 0 NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bug_relationship_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bug_relationship_t BEFORE insert ON m_bug_relationship_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bug_relationship_t.nextval into :new.id from dual; END; / CREATE INDEX idx_relationship_source ON m_bug_relationship_t (source_bug_id); CREATE INDEX idx_relationship_destination ON m_bug_relationship_t (destination_bug_id); CREATE TABLE m_bug_t ( id NUMBER(10) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, reporter_id NUMBER(10) DEFAULT 0 NOT NULL, handler_id NUMBER(10) DEFAULT 0 NOT NULL, duplicate_id NUMBER(10) DEFAULT 0 NOT NULL, priority NUMBER(5) DEFAULT 30 NOT NULL, severity NUMBER(5) DEFAULT 50 NOT NULL, reproducibility NUMBER(5) DEFAULT 10 NOT NULL, status NUMBER(5) DEFAULT 10 NOT NULL, resolution NUMBER(5) DEFAULT 10 NOT NULL, projection NUMBER(5) DEFAULT 10 NOT NULL, category VARCHAR(64) DEFAULT '', date_submitted DATE DEFAULT null NOT NULL, last_updated DATE DEFAULT null NOT NULL, eta NUMBER(5) DEFAULT 10 NOT NULL, bug_text_id NUMBER(10) DEFAULT 0 NOT NULL, os VARCHAR(32) DEFAULT '', os_build VARCHAR(32) DEFAULT '', platform VARCHAR(32) DEFAULT '', version VARCHAR(64) DEFAULT '', fixed_in_version VARCHAR(64) DEFAULT '', build VARCHAR(32) DEFAULT '', profile_id NUMBER(10) DEFAULT 0 NOT NULL, view_state NUMBER(5) DEFAULT 10 NOT NULL, summary VARCHAR(128) DEFAULT '', sponsorship_total NUMBER(10) DEFAULT 0 NOT NULL, sticky NUMBER(1) DEFAULT '0', PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bug_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bug_t BEFORE insert ON m_bug_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bug_t.nextval into :new.id from dual; END; / CREATE INDEX idx_bug_sponsorship_total ON m_bug_t (sponsorship_total); CREATE INDEX idx_bug_fixed_in_version ON m_bug_t (fixed_in_version); CREATE INDEX idx_bug_status ON m_bug_t (status); CREATE INDEX idx_project ON m_bug_t (project_id); CREATE TABLE m_bug_text_t ( id NUMBER(10) NOT NULL, description CLOB NOT NULL, steps_to_reproduce CLOB, additional_information CLOB, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bug_text_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bug_text_t BEFORE insert ON m_bug_text_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bug_text_t.nextval into :new.id from dual; END; / CREATE TABLE m_bugnote_t ( id NUMBER(10) NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, reporter_id NUMBER(10) DEFAULT 0 NOT NULL, bugnote_text_id NUMBER(10) DEFAULT 0 NOT NULL, view_state NUMBER(5) DEFAULT 10 NOT NULL, date_submitted DATE DEFAULT null NOT NULL, last_modified DATE DEFAULT null NOT NULL, note_type NUMBER(10) DEFAULT 0, note_attr VARCHAR(250) DEFAULT '', PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bugnote_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bugnote_t BEFORE insert ON m_bugnote_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bugnote_t.nextval into :new.id from dual; END; / CREATE INDEX idx_bug ON m_bugnote_t (bug_id); CREATE INDEX idx_last_mod ON m_bugnote_t (last_modified); CREATE TABLE m_bugnote_text_t ( id NUMBER(10) NOT NULL, note CLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_bugnote_text_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_bugnote_text_t BEFORE insert ON m_bugnote_text_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_bugnote_text_t.nextval into :new.id from dual; END; / CREATE TABLE m_custom_field_project_t ( field_id NUMBER(10) DEFAULT 0 NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, sequence NUMBER(5) DEFAULT 0 NOT NULL, PRIMARY KEY (field_id, project_id) ); CREATE TABLE m_custom_field_string_t ( field_id NUMBER(10) DEFAULT 0 NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, value VARCHAR(255) DEFAULT '', PRIMARY KEY (field_id, bug_id) ); CREATE INDEX idx_custom_field_bug ON m_custom_field_string_t (bug_id); CREATE TABLE m_custom_field_t ( id NUMBER(10) NOT NULL, name VARCHAR(64) DEFAULT '', type NUMBER(5) DEFAULT 0 NOT NULL, possible_values VARCHAR(255) DEFAULT '', default_value VARCHAR(255) DEFAULT '', valid_regexp VARCHAR(255) DEFAULT '', access_level_r NUMBER(5) DEFAULT 0 NOT NULL, access_level_rw NUMBER(5) DEFAULT 0 NOT NULL, length_min NUMBER(10) DEFAULT 0 NOT NULL, length_max NUMBER(10) DEFAULT 0 NOT NULL, advanced NUMBER(1) DEFAULT '0' NOT NULL, require_report NUMBER(1) DEFAULT '0' NOT NULL, require_update NUMBER(1) DEFAULT '0' NOT NULL, display_report NUMBER(1) DEFAULT '0' NOT NULL, display_update NUMBER(1) DEFAULT '1' NOT NULL, require_resolved NUMBER(1) DEFAULT '0' NOT NULL, display_resolved NUMBER(1) DEFAULT '0' NOT NULL, display_closed NUMBER(1) DEFAULT '0' NOT NULL, require_closed NUMBER(1) DEFAULT '0' NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_custom_field_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_custom_field_t BEFORE insert ON m_custom_field_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_custom_field_t.nextval into :new.id from dual; END; / CREATE INDEX idx_custom_field_name ON m_custom_field_t (name); CREATE TABLE m_filters_t ( id NUMBER(10) NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, is_public NUMBER(1) DEFAULT NULL, name VARCHAR(64) DEFAULT '', filter_string CLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_filters_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_filters_t BEFORE insert ON m_filters_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_filters_t.nextval into :new.id from dual; END; / CREATE TABLE m_news_t ( id NUMBER(10) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, poster_id NUMBER(10) DEFAULT 0 NOT NULL, date_posted DATE DEFAULT null NOT NULL, last_modified DATE DEFAULT null NOT NULL, view_state NUMBER(5) DEFAULT 10 NOT NULL, announcement NUMBER(1) DEFAULT '0' NOT NULL, headline VARCHAR(64) DEFAULT '', body CLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_news_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_news_t BEFORE insert ON m_news_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_news_t.nextval into :new.id from dual; END; / CREATE TABLE m_project_category_t ( project_id NUMBER(10) DEFAULT 0 NOT NULL, category VARCHAR(64) DEFAULT '', user_id NUMBER(10) DEFAULT 0 NOT NULL, PRIMARY KEY (project_id, category) ); CREATE TABLE m_project_file_t ( id NUMBER(10) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, title VARCHAR(250) DEFAULT '', description VARCHAR(250) DEFAULT '', diskfile VARCHAR(250) DEFAULT '', filename VARCHAR(250) DEFAULT '', folder VARCHAR(250) DEFAULT '', filesize NUMBER(10) DEFAULT 0 NOT NULL, file_type VARCHAR(250) DEFAULT '', date_added DATE DEFAULT null NOT NULL, content BLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_project_file_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_project_file_t BEFORE insert ON m_project_file_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_project_file_t.nextval into :new.id from dual; END; / CREATE TABLE m_project_hierarchy_t ( child_id NUMBER(10) NOT NULL, parent_id NUMBER(10) NOT NULL ); CREATE TABLE m_project_t ( id NUMBER(10) NOT NULL, name VARCHAR(128) DEFAULT '', status NUMBER(5) DEFAULT 10 NOT NULL, enabled NUMBER(1) DEFAULT '1' NOT NULL, view_state NUMBER(5) DEFAULT 10 NOT NULL, access_min NUMBER(5) DEFAULT 10 NOT NULL, file_path VARCHAR(250) DEFAULT '', description CLOB, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_project_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_project_t BEFORE insert ON m_project_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_project_t.nextval into :new.id from dual; END; / CREATE UNIQUE INDEX idx_project_name ON m_project_t (name); CREATE INDEX idx_project_view ON m_project_t (view_state); CREATE TABLE m_project_user_list_t ( project_id NUMBER(10) DEFAULT 0 NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, access_level NUMBER(5) DEFAULT 10 NOT NULL, PRIMARY KEY (project_id, user_id) ); CREATE INDEX idx_project_user ON m_project_user_list_t (user_id); CREATE TABLE m_project_version_t ( id NUMBER(10) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, version VARCHAR(64) DEFAULT '', date_order DATE DEFAULT null NOT NULL, description CLOB, released NUMBER(1) DEFAULT '1' NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_project_version_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_project_version_t BEFORE insert ON m_project_version_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_project_version_t.nextval into :new.id from dual; END; / CREATE UNIQUE INDEX idx_project_version ON m_project_version_t (project_id, version); CREATE TABLE m_sponsorship_t ( id NUMBER(10) NOT NULL, bug_id NUMBER(10) DEFAULT 0 NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, amount NUMBER(10) DEFAULT 0 NOT NULL, logo VARCHAR(128) DEFAULT '', url VARCHAR(128) DEFAULT '', paid NUMBER(1) DEFAULT '0' NOT NULL, date_submitted DATE DEFAULT null NOT NULL, last_updated DATE DEFAULT null NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_sponsorship_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_sponsorship_t BEFORE insert ON m_sponsorship_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_sponsorship_t.nextval into :new.id from dual; END; / CREATE INDEX idx_sponsorship_bug_id ON m_sponsorship_t (bug_id); CREATE INDEX idx_sponsorship_user_id ON m_sponsorship_t (user_id); CREATE TABLE m_tokens_t ( id NUMBER(10) NOT NULL, owner NUMBER(10) NOT NULL, type NUMBER(10) NOT NULL, timestamp DATE NOT NULL, expiry DATE, value CLOB NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_tokens_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_tokens_t BEFORE insert ON m_tokens_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_tokens_t.nextval into :new.id from dual; END; / CREATE TABLE m_user_pref_t ( id NUMBER(10) NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, default_profile NUMBER(10) DEFAULT 0 NOT NULL, default_project NUMBER(10) DEFAULT 0 NOT NULL, advanced_report NUMBER(1) DEFAULT '0' NOT NULL, advanced_view NUMBER(1) DEFAULT '0' NOT NULL, advanced_update NUMBER(1) DEFAULT '0' NOT NULL, refresh_delay NUMBER(10) DEFAULT 0 NOT NULL, redirect_delay NUMBER(1) DEFAULT '0', bugnote_order VARCHAR(4) DEFAULT 'ASC' NOT NULL, email_on_new NUMBER(1) DEFAULT '0' NOT NULL, email_on_assigned NUMBER(1) DEFAULT '0' NOT NULL, email_on_feedback NUMBER(1) DEFAULT '0' NOT NULL, email_on_resolved NUMBER(1) DEFAULT '0' NOT NULL, email_on_closed NUMBER(1) DEFAULT '0' NOT NULL, email_on_reopened NUMBER(1) DEFAULT '0' NOT NULL, email_on_bugnote NUMBER(1) DEFAULT '0' NOT NULL, email_on_status NUMBER(1) DEFAULT '0', email_on_priority NUMBER(1) DEFAULT '0', email_on_priority_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_status_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_bugnote_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_reopened_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_closed_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_resolved_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_feedback_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_assigned_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_on_new_min_severity NUMBER(5) DEFAULT 10 NOT NULL, email_bugnote_limit NUMBER(5) DEFAULT 0 NOT NULL, language VARCHAR(32) DEFAULT 'english' NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_user_pref_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_user_pref_t BEFORE insert ON m_user_pref_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_user_pref_t.nextval into :new.id from dual; END; / CREATE TABLE m_user_print_pref_t ( user_id NUMBER(10) DEFAULT 0 NOT NULL, print_pref VARCHAR(27) DEFAULT '', PRIMARY KEY (user_id) ); CREATE TABLE m_user_profile_t ( id NUMBER(10) NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, platform VARCHAR(32) DEFAULT '', os VARCHAR(32) DEFAULT '', os_build VARCHAR(32) DEFAULT '', description CLOB, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_user_profile_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_user_profile_t BEFORE insert ON m_user_profile_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_user_profile_t.nextval into :new.id from dual; END; / CREATE TABLE m_user_t ( id NUMBER(10) NOT NULL, username VARCHAR(32) DEFAULT '', realname VARCHAR(64) DEFAULT '', email VARCHAR(64) DEFAULT '', password VARCHAR(32) DEFAULT '', date_created DATE DEFAULT null NOT NULL, last_visit DATE DEFAULT null NOT NULL, enabled NUMBER(1) DEFAULT '1' NOT NULL, protected NUMBER(1) DEFAULT '0' NOT NULL, access_level NUMBER(5) DEFAULT 10 NOT NULL, login_count NUMBER(10) DEFAULT 0 NOT NULL, lost_password_request_count NUMBER(5) DEFAULT 0 NOT NULL, failed_login_count NUMBER(5) DEFAULT 0 NOT NULL, cookie_string VARCHAR(64) DEFAULT '', PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_user_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_user_t BEFORE insert ON m_user_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_user_t.nextval into :new.id from dual; END; / CREATE UNIQUE INDEX idx_user_cookie_string ON m_user_t (cookie_string); CREATE UNIQUE INDEX idx_user_username ON m_user_t (username); CREATE INDEX idx_enable ON m_user_t (enabled); CREATE INDEX idx_access ON m_user_t (access_level); INSERT INTO m_user_t(username, realname, email, password, date_created, last_visit, enabled, protected, access_level, login_count, lost_password_request_count, failed_login_count, cookie_string) VALUES ('administrator', '', 'root@localhost', '63a9f0ea7bb98050796b649e85481845', timestamp'2011-10-24 10:54:11', timestamp'2011-10-24 10:54:11', '1', '0', 90, 3, 0, 0, '15cbb5bab137c7be1bc564c3699031648ffc4faca9746aaf0382b4bbd83d929e'); ALTER TABLE m_bug_history_t MODIFY( old_value VARCHAR(255)); ALTER TABLE m_bug_history_t MODIFY( new_value VARCHAR(255)); CREATE TABLE m_email_t ( email_id NUMBER(10) NOT NULL, email VARCHAR(64) DEFAULT '', subject VARCHAR(250) DEFAULT '', submitted DATE DEFAULT null NOT NULL, metadata CLOB NOT NULL, body CLOB NOT NULL, PRIMARY KEY (email_id) ); CREATE SEQUENCE SEQ_m_email_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_email_t BEFORE insert ON m_email_t FOR EACH ROW WHEN (NEW.email_id IS NULL OR NEW.email_id = 0) BEGIN select SEQ_m_email_t.nextval into :new.email_id from dual; END; / ALTER TABLE m_bug_t ADD ( target_version VARCHAR(64) DEFAULT ''); ALTER TABLE m_bugnote_t ADD ( time_tracking NUMBER(10) DEFAULT 0 NOT NULL); CREATE INDEX idx_diskfile ON m_bug_file_t (diskfile); ALTER TABLE m_user_print_pref_t MODIFY( print_pref VARCHAR(64) NOT NULL); ALTER TABLE m_bug_history_t MODIFY( field_name VARCHAR(64)); CREATE TABLE m_tag_t ( id NUMBER(10) NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, name VARCHAR(100) DEFAULT '', description CLOB, date_created DATE DEFAULT null NOT NULL, date_updated DATE DEFAULT null NOT NULL, PRIMARY KEY (id, name) ); CREATE SEQUENCE SEQ_m_tag_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_tag_t BEFORE insert ON m_tag_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_tag_t.nextval into :new.id from dual; END; / CREATE TABLE m_bug_tag_t ( bug_id NUMBER(10) DEFAULT 0 NOT NULL, tag_id NUMBER(10) DEFAULT 0 NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, date_attached DATE DEFAULT null NOT NULL, PRIMARY KEY (bug_id, tag_id) ); CREATE INDEX idx_typeowner ON m_tokens_t (type, owner); CREATE TABLE m_plugin_t ( basename VARCHAR(40) NOT NULL, enabled NUMBER(1) DEFAULT '0' NOT NULL, PRIMARY KEY (basename) ); ALTER TABLE m_user_pref_t MODIFY( redirect_delay NUMBER(10) DEFAULT 0); ALTER TABLE m_custom_field_t MODIFY( possible_values VARCHAR(4000) DEFAULT ''); CREATE TABLE m_category_t ( id NUMBER(10) NOT NULL, project_id NUMBER(10) DEFAULT 0 NOT NULL, user_id NUMBER(10) DEFAULT 0 NOT NULL, name VARCHAR(128) DEFAULT '', status NUMBER(10) DEFAULT 0 NOT NULL, PRIMARY KEY (id) ); CREATE SEQUENCE SEQ_m_category_t ; CREATE OR REPLACE TRIGGER TRIG_SEQ_m_category_t BEFORE insert ON m_category_t FOR EACH ROW WHEN (NEW.id IS NULL OR NEW.id = 0) BEGIN select SEQ_m_category_t.nextval into :new.id from dual; END; / CREATE UNIQUE INDEX idx_category_project_name ON m_category_t (project_id, name); INSERT INTO m_category_t ( project_id, user_id, name, status ) VALUES ( '0', '0', 'General', '0' ) ; ALTER TABLE m_bug_t ADD ( category_id NUMBER(10) DEFAULT 1 NOT NULL); ALTER TABLE m_bug_t DROP(category) CASCADE CONSTRAINTS; DROP TABLE m_project_category_t CASCADE CONSTRAINTS; ALTER TABLE m_project_t ADD ( category_id NUMBER(10) DEFAULT 1 NOT NULL);