improved_customization
[odoo/odoo.git] / bin / addons / base / base.sql
1 -------------------------------------------------------------------------
2 -- Pure SQL
3 -------------------------------------------------------------------------
4
5 -------------------------------------------------------------------------
6 -- IR dictionary
7 -------------------------------------------------------------------------
8
9 create table ir_values
10 (
11     id serial,
12     name varchar(128) not null,
13     key varchar(128) not null,
14     key2 varchar(128) not null,
15     model varchar(128) not null,
16     value text,
17     meta text default NULL,
18     res_id integer default null,
19     primary key (id)
20 );
21
22 -------------------------------------------------------------------------
23 -- Modules Description
24 -------------------------------------------------------------------------
25
26 CREATE TABLE ir_model (
27   id serial,
28   model varchar(64) DEFAULT ''::varchar NOT NULL,
29   name varchar(64),
30   state varchar(16),
31   info text,
32   primary key(id)
33 );
34
35 CREATE TABLE ir_model_fields (
36   id serial,
37   model varchar(64) DEFAULT ''::varchar NOT NULL,
38   model_id int references ir_model on delete cascade,
39   name varchar(64) DEFAULT ''::varchar NOT NULL,
40   relation varchar(64),
41   select_level varchar(4),
42   field_description varchar(256),
43   ttype varchar(64),
44   state varchar(64) default 'base',
45   view_load boolean,
46   relate boolean default False,
47   primary key(id)
48 );
49
50
51 -------------------------------------------------------------------------
52 -- Actions
53 -------------------------------------------------------------------------
54
55 CREATE TABLE ir_actions (
56     id serial NOT NULL,
57     name varchar(64) DEFAULT ''::varchar NOT NULL,
58     "type" varchar(64) DEFAULT 'window'::varchar NOT NULL,
59     usage varchar(32) DEFAULT null,
60     primary key(id)
61 );
62
63 CREATE TABLE ir_act_window (
64     view_id integer,
65     res_model varchar(64),
66     view_type varchar(16),
67     "domain" varchar(127),
68     primary key(id)
69 )
70 INHERITS (ir_actions);
71
72 CREATE TABLE ir_act_report_xml (
73     model varchar(64) NOT NULL,
74     report_name varchar(64) NOT NULL,
75     report_xsl varchar(64),
76     report_xml varchar(64),
77     auto boolean default true,
78     primary key(id)
79 )
80 INHERITS (ir_actions);
81
82 create table ir_act_report_custom (
83     report_id int,
84 --  report_id int references ir_report_custom
85     primary key(id)
86 )
87 INHERITS (ir_actions);
88
89 CREATE TABLE ir_act_wizard (
90     wiz_name varchar(64) NOT NULL,
91     primary key(id)
92 )
93 INHERITS (ir_actions);
94
95 CREATE TABLE ir_act_url (
96     url text NOT NULL,
97     target varchar(64) NOT NULL,
98     primary key(id)
99 )
100 INHERITS (ir_actions);
101
102 CREATE TABLE ir_act_server (
103     primary key(id)
104 )
105 INHERITS (ir_actions);
106
107
108 CREATE TABLE ir_ui_view (
109     id serial NOT NULL,
110     name varchar(64) DEFAULT ''::varchar NOT NULL,
111     model varchar(64) DEFAULT ''::varchar NOT NULL,
112     "type" varchar(64) DEFAULT 'form'::varchar NOT NULL,
113     arch text NOT NULL,
114     field_parent varchar(64),
115     priority integer DEFAULT 5 NOT NULL,
116     primary key(id)
117 );
118
119 CREATE TABLE ir_ui_menu (
120     id serial NOT NULL,
121     parent_id int references ir_ui_menu on delete set null,
122     name varchar(64) DEFAULT ''::varchar NOT NULL,
123     icon varchar(64) DEFAULT ''::varchar,
124     primary key (id)
125 );
126
127 select setval('ir_ui_menu_id_seq', 2);
128
129 ---------------------------------
130 -- Res users
131 ---------------------------------
132
133 -- level:
134 --   0  RESTRICT TO USER
135 --   1  RESTRICT TO GROUP
136 --   2  PUBLIC
137
138 CREATE TABLE res_users (
139     id serial NOT NULL,
140     name varchar(64) not null,
141     active boolean default True,
142     login varchar(64) NOT NULL UNIQUE,
143     password varchar(32) default null,
144     context_tz varchar(64) default null,
145     signature text,
146 --  action_id int references ir_act_window on delete set null,
147     action_id int,
148     primary key(id)
149 );
150 alter table res_users add constraint res_users_login_uniq unique (login);
151
152 CREATE TABLE res_groups (
153     id serial NOT NULL,
154     name varchar(32) NOT NULL,
155     primary key(id)
156 );
157
158 create table res_roles (
159     id serial NOT NULL,
160     parent_id int references res_roles on delete set null,
161     name varchar(32) NOT NULL,
162     primary key(id)
163 );
164
165 CREATE TABLE res_roles_users_rel (
166     uid integer NOT NULL references res_users on delete cascade,
167     rid integer NOT NULL references res_roles on delete cascade
168 );
169
170 CREATE TABLE res_groups_users_rel (
171     uid integer NOT NULL references res_users on delete cascade,
172     gid integer NOT NULL references res_groups on delete cascade
173 );
174
175 ---------------------------------
176 -- Workflows
177 ---------------------------------
178
179 create table wkf
180 (
181     id serial,
182     name varchar(64),
183     osv varchar(64),
184     on_create bool default False,
185     primary key(id)
186 );
187
188 create table wkf_activity
189 (
190     id serial,
191     wkf_id int references wkf on delete cascade,
192     subflow_id int references wkf on delete set null,
193     split_mode varchar(3) default 'XOR',
194     join_mode varchar(3) default 'XOR',
195     kind varchar(16) not null default 'dummy',
196     name varchar(64),
197     signal_send varchar(32) default null,
198     flow_start boolean default False,
199     flow_stop boolean default False,
200     action varchar(64) default null,
201     primary key(id)
202 );
203
204 create table wkf_transition
205 (
206     id serial,
207     act_from int references wkf_activity on delete cascade,
208     act_to int references wkf_activity on delete cascade,
209     condition varchar(128) default NULL,
210
211     trigger_type varchar(128) default NULL,
212     trigger_expr_id varchar(128) default NULL,
213
214     signal varchar(64) default null,
215     role_id int references res_roles on delete set null,
216
217     primary key(id)
218 );
219
220 create table wkf_instance
221 (
222     id serial,
223     wkf_id int references wkf on delete restrict,
224     uid int default null,
225     res_id int not null,
226     res_type varchar(64) not null,
227     state varchar(32) not null default 'active',
228     primary key(id)
229 );
230
231 create table wkf_workitem
232 (
233     id serial,
234     act_id int not null references wkf_activity on delete cascade,
235     inst_id int not null references wkf_instance on delete cascade,
236     subflow_id int references wkf_instance on delete cascade,
237     state varchar(64) default 'blocked',
238     primary key(id)
239 );
240
241 create table wkf_witm_trans
242 (
243     trans_id int not null references wkf_transition on delete cascade,
244     inst_id int not null references wkf_instance on delete cascade
245 );
246
247 create table wkf_logs
248 (
249     id serial,
250     res_type varchar(128) not null,
251     res_id int not null,
252     uid int references res_users on delete set null,
253     act_id int references wkf_activity on delete set null,
254     time time not null,
255     info varchar(128) default NULL,
256     primary key(id)
257 );
258
259 ---------------------------------
260 -- Modules
261 ---------------------------------
262
263 CREATE TABLE ir_module_category (
264     id serial NOT NULL,
265     create_uid integer references res_users on delete set null,
266     create_date timestamp without time zone,
267     write_date timestamp without time zone,
268     write_uid integer references res_users on delete set null,
269     parent_id integer REFERENCES ir_module_category ON DELETE SET NULL,
270     name character varying(128) NOT NULL,
271     primary key(id)
272 );
273
274
275 CREATE TABLE ir_module_module (
276     id serial NOT NULL,
277     create_uid integer references res_users on delete set null,
278     create_date timestamp without time zone,
279     write_date timestamp without time zone,
280     write_uid integer references res_users on delete set null,
281     website character varying(256),
282     name character varying(128) NOT NULL,
283     author character varying(128),
284     url character varying(128),
285     state character varying(16),
286     latest_version character varying(64),
287     shortdesc character varying(256),
288     category_id integer REFERENCES ir_module_category ON DELETE SET NULL,
289     description text,
290     demo boolean default False,
291     primary key(id)
292 );
293 ALTER TABLE ir_module_module add constraint name_uniq unique (name);
294
295 CREATE TABLE ir_module_module_dependency (
296     id serial NOT NULL,
297     create_uid integer references res_users on delete set null,
298     create_date timestamp without time zone,
299     write_date timestamp without time zone,
300     write_uid integer references res_users on delete set null,
301     name character varying(128),
302     version_pattern character varying(128) default NULL,
303     module_id integer REFERENCES ir_module_module ON DELETE cascade,
304     primary key(id)
305 );
306
307 CREATE TABLE res_company (
308     id serial NOT NULL,
309     name character varying(64) not null,
310     parent_id integer references res_company on delete set null,
311     primary key(id)
312 );
313
314 CREATE TABLE ir_model_data (
315     id serial NOT NULL,
316     create_uid integer,
317     create_date timestamp without time zone,
318     write_date timestamp without time zone,
319     write_uid integer,
320     noupdate boolean,
321     name character varying(64) NOT NULL,
322     date_init timestamp without time zone,
323     date_update timestamp without time zone,
324     module character varying(64) NOT NULL,
325     model character varying(64) NOT NULL,
326     res_id integer, primary key(id)
327 );
328
329 ---------------------------------
330 -- Users
331 ---------------------------------
332
333 insert into res_users (id,login,password,name,action_id,active) values (1,'admin',NULL,'Administrator',NULL,True);
334 insert into ir_model_data (name,module,model,noupdate,res_id) values ('user_root','base','res.users',True,1);
335
336 -- Compatibility purpose, to remove V6.0
337 insert into ir_model_data (name,module,model,noupdate,res_id) values ('user_admin','base','res.users',True,1);
338
339 select setval('res_users_id_seq', 2);