diff options
Diffstat (limited to 'odoo/addons/base/base.sql')
| -rw-r--r-- | odoo/addons/base/base.sql | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/odoo/addons/base/base.sql b/odoo/addons/base/base.sql new file mode 100644 index 00000000000..4f53a2b032b --- /dev/null +++ b/odoo/addons/base/base.sql @@ -0,0 +1,211 @@ +------------------------------------------------------------------------- +-- Pure SQL +------------------------------------------------------------------------- + +CREATE TABLE ir_actions ( + id serial, + primary key(id) +); +CREATE TABLE ir_act_window (primary key(id)) INHERITS (ir_actions); +CREATE TABLE ir_act_report_xml (primary key(id)) INHERITS (ir_actions); +CREATE TABLE ir_act_url (primary key(id)) INHERITS (ir_actions); +CREATE TABLE ir_act_server (primary key(id)) INHERITS (ir_actions); +CREATE TABLE ir_act_client (primary key(id)) INHERITS (ir_actions); + + +CREATE TABLE ir_model ( + id serial, + model varchar NOT NULL, + name varchar, + state varchar, + info text, + transient boolean, + primary key(id) +); + +CREATE TABLE ir_model_fields ( + id serial, + model varchar NOT NULL, + model_id integer references ir_model on delete cascade, + name varchar NOT NULL, + state varchar default 'base', + field_description varchar, + help varchar, + ttype varchar, + relation varchar, + relation_field varchar, + index boolean, + copy boolean, + related varchar, + readonly boolean default False, + required boolean default False, + selectable boolean default False, + translate boolean default False, + serialization_field_id integer references ir_model_fields on delete cascade, + relation_table varchar, + column1 varchar, + column2 varchar, + store boolean, + primary key(id) +); + +CREATE TABLE res_lang ( + id serial, + name VARCHAR(64) NOT NULL UNIQUE, + code VARCHAR(16) NOT NULL UNIQUE, + primary key(id) +); + +CREATE TABLE res_users ( + id serial NOT NULL, + active boolean default True, + login varchar(64) NOT NULL UNIQUE, + password varchar(64) default null, + -- No FK references below, will be added later by ORM + -- (when the destination rows exist) + company_id integer, -- references res_company, + partner_id integer, -- references res_partner, + primary key(id) +); + +create table wkf ( + id serial, + name varchar(64), + osv varchar(64), + on_create bool default false, + primary key(id) +); + +CREATE TABLE ir_module_category ( + id serial NOT NULL, + create_uid integer, -- references res_users on delete set null, + create_date timestamp without time zone, + write_date timestamp without time zone, + write_uid integer, -- references res_users 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_users on delete set null, + create_date timestamp without time zone, + write_date timestamp without time zone, + write_uid integer, -- references res_users on delete set null, + website character varying(256), + summary character varying(256), + name character varying(128) NOT NULL, + author character varying(128), + icon varchar, + 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, + application boolean default False, + demo boolean default False, + web boolean DEFAULT FALSE, + license character varying(32), + sequence integer DEFAULT 100, + auto_install 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_users on delete set null, + create_date timestamp without time zone, + write_date timestamp without time zone, + write_uid integer, -- references res_users on delete set null, + name character varying(128), + module_id integer REFERENCES ir_module_module ON DELETE cascade, + primary key(id) +); + +CREATE TABLE ir_model_data ( + id serial NOT NULL, + create_uid integer, + create_date timestamp without time zone, + write_date timestamp without time zone, + write_uid integer, + noupdate boolean, + name varchar NOT NULL, + date_init timestamp without time zone, + date_update timestamp without time zone, + module varchar NOT NULL, + model varchar NOT NULL, + res_id integer, + primary key(id) +); + +-- Records foreign keys and constraints installed by a module (so they can be +-- removed when the module is uninstalled): +-- - for a foreign key: type is 'f', +-- - for a constraint: type is 'u' (this is the convention PostgreSQL uses). +CREATE TABLE ir_model_constraint ( + id serial NOT NULL, + date_init timestamp without time zone, + date_update timestamp without time zone, + module integer NOT NULL references ir_module_module on delete restrict, + model integer NOT NULL references ir_model on delete restrict, + type character varying(1) NOT NULL, + definition varchar, + name varchar NOT NULL, + primary key(id) +); + +-- Records relation tables (i.e. implementing many2many) installed by a module +-- (so they can be removed when the module is uninstalled). +CREATE TABLE ir_model_relation ( + id serial NOT NULL, + date_init timestamp without time zone, + date_update timestamp without time zone, + module integer NOT NULL references ir_module_module on delete restrict, + model integer NOT NULL references ir_model on delete restrict, + name varchar NOT NULL, + primary key(id) +); + +CREATE TABLE res_currency ( + id serial, + name varchar NOT NULL, + symbol varchar NOT NULL, + primary key(id) +); + +CREATE TABLE res_company ( + id serial, + name varchar NOT NULL, + partner_id integer, + currency_id integer, + primary key(id) +); + +CREATE TABLE res_partner ( + id serial, + name varchar, + company_id integer, + primary key(id) +); + + +--------------------------------- +-- Default data +--------------------------------- +insert into res_currency (id, name, symbol) VALUES (1, 'EUR', '€'); +insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('EUR', 'base', 'res.currency', true, 1); +select setval('res_currency_id_seq', 2); + +insert into res_company (id, name, partner_id, currency_id) VALUES (1, 'My Company', 1, 1); +insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_company', 'base', 'res.company', true, 1); +select setval('res_company_id_seq', 2); + +insert into res_partner (id, name, company_id) VALUES (1, 'My Company', 1); +insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_partner', 'base', 'res.partner', true, 1); +select setval('res_partner_id_seq', 2); + +insert into res_users (id, login, password, active, partner_id, company_id) VALUES (1, 'admin', 'admin', true, 1, 1); +insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('user_root', 'base', 'res.users', true, 1); +select setval('res_users_id_seq', 2); |
