------------------------------------------------------------------------- -- Pure SQL ------------------------------------------------------------------------- CREATE TABLE inherit ( obj_type varchar(128) not null, obj_id int not null, inst_type varchar(128) not null, inst_id int not null ); ------------------------------------------------------------------------- -- IR dictionary ------------------------------------------------------------------------- create table ir_values ( id serial, name varchar(128) not null, key varchar(128) not null, key2 varchar(128) not null, model varchar(128) not null, value text, meta text default NULL, res_id integer default null, primary key (id) ); ------------------------------------------------------------------------- -- Modules Description ------------------------------------------------------------------------- CREATE TABLE ir_model ( id serial, model varchar(64) DEFAULT ''::varchar NOT NULL, name varchar(64), info text, primary key(id) ); CREATE TABLE ir_model_fields ( id serial, model varchar(64) DEFAULT ''::varchar NOT NULL, model_id int references ir_model on delete cascade, name varchar(64) DEFAULT ''::varchar NOT NULL, relation varchar(64), field_description varchar(256), ttype varchar(64), group_name varchar(64), view_load boolean, relate boolean default False, primary key(id) ); ------------------------------------------------------------------------- -- Actions ------------------------------------------------------------------------- CREATE TABLE ir_ui_view ( id serial NOT NULL, name varchar(64) DEFAULT ''::varchar NOT NULL, model varchar(64) DEFAULT ''::varchar NOT NULL, "type" varchar(64) DEFAULT 'form'::varchar NOT NULL, arch text NOT NULL, field_parent varchar(64), priority integer DEFAULT 5 NOT NULL, primary key(id) ); CREATE TABLE ir_ui_menu ( id serial NOT NULL, parent_id int references ir_ui_menu on delete set null, name varchar(64) DEFAULT ''::varchar NOT NULL, icon varchar(64) DEFAULT ''::varchar, primary key (id) ); select setval('ir_ui_menu_id_seq', 2); --------------------------------- -- Res user --------------------------------- -- level: -- 0 RESTRICT TO USER -- 1 RESTRICT TO GROUP -- 2 PUBLIC CREATE TABLE res_user ( id serial NOT NULL, name varchar(64) not null, active boolean default True, login varchar(64) NOT NULL UNIQUE, password varchar(32) default null, -- action_id int references ir_act_window on delete set null, action_id int, primary key(id) ); alter table res_user add constraint res_user_login_uniq unique (login); insert into res_user (id,login,password,name,action_id,active) values (1,'root',NULL,'Root',NULL,False); select setval('res_user_id_seq', 2); CREATE TABLE res_group ( id serial NOT NULL, name varchar(32) NOT NULL, primary key(id) ); create table res_role ( id serial NOT NULL, parent_id int references res_role on delete set null, name varchar(32) NOT NULL, primary key(id) ); CREATE TABLE res_role_user_rel ( uid integer NOT NULL references res_user on delete cascade, rid integer NOT NULL references res_role on delete cascade ); CREATE TABLE res_group_user_rel ( uid integer NOT NULL references res_user on delete cascade, gid integer NOT NULL references res_group on delete cascade ); --------------------------------- -- Workflows --------------------------------- create table wkf ( id serial, name varchar(64), osv varchar(64), on_create bool default False, primary key(id) ); create table wkf_activity ( id serial, wkf_id int references wkf on delete cascade, subflow_id int references wkf on delete set null, split_mode varchar(3) default 'XOR', join_mode varchar(3) default 'XOR', kind varchar(16) not null default 'dummy', name varchar(64), signal_send varchar(32) default null, flow_start boolean default False, flow_stop boolean default False, action varchar(64) default null, primary key(id) ); create table wkf_transition ( id serial, act_from int references wkf_activity on delete cascade, act_to int references wkf_activity on delete cascade, condition varchar(128) default NULL, trigger_type varchar(128) default NULL, trigger_expr_id varchar(128) default NULL, signal varchar(64) default null, role_id int references res_role on delete set null, primary key(id) ); create table wkf_instance ( id serial, wkf_id int references wkf on delete restrict, uid int default null, res_id int not null, res_type varchar(64) not null, state varchar(32) not null default 'active', primary key(id) ); create table wkf_workitem ( id serial, act_id int not null references wkf_activity on delete cascade, inst_id int not null references wkf_instance on delete cascade, subflow_id int references wkf_instance on delete cascade, state varchar(64) default 'blocked', primary key(id) ); create table wkf_witm_trans ( trans_id int not null references wkf_transition on delete cascade, inst_id int not null references wkf_instance on delete cascade ); create table wkf_logs ( id serial, res_type varchar(128) not null, res_id int not null, uid int references res_user on delete set null, act_id int references wkf_activity on delete set null, time time not null, info varchar(128) default NULL, primary key(id) ); --------------------------------- -- Modules --------------------------------- CREATE TABLE ir_module_category ( id serial NOT NULL, create_uid integer references res_user on delete set null, create_date timestamp without time zone, write_date timestamp without time zone, write_uid integer references res_user on delete set null, parent_id integer REFERENCES ir_module_category ON DELETE SET NULL, name character varying(128) NOT NULL, primary key(id) ); CREATE TABLE ir_module_module ( id serial NOT NULL, create_uid integer references res_user on delete set null, create_date timestamp without time zone, write_date timestamp without time zone, write_uid integer references res_user on delete set null, website character varying(256), name character varying(128) NOT NULL, author character varying(128), url character varying(128), state character varying(16), latest_version character varying(64), shortdesc character varying(256), category_id integer REFERENCES ir_module_category ON DELETE SET NULL, description text, demo boolean default False, primary key(id) ); ALTER TABLE ir_module_module add constraint name_uniq unique (name); CREATE TABLE ir_module_module_dependency ( id serial NOT NULL, create_uid integer references res_user on delete set null, create_date timestamp without time zone, write_date timestamp without time zone, write_uid integer references res_user on delete set null, name character varying(128), version_pattern character varying(128) default NULL, module_id integer REFERENCES ir_module_module ON DELETE cascade, primary key(id) );