The default size limits set in base.sql are eventually superseded by the actual limits (or absence of) when the DB schema is synchronized with the Python model definitions. However the list of modules (name, authors, descriptions, dependencies) is loaded before this can happen. The length of the author field is one case that can easily crash the database bootstrap process at that point, should a module with a long author name be present in the addons path. After schema sync, that size limit is lifted entirely (although Odoo Apps does limit the max author name length to 512 at the moment, to prevent abuse). Fixes #5850
199 lines
6.4 KiB
SQL
199 lines
6.4 KiB
SQL
-------------------------------------------------------------------------
|
|
-- 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,
|
|
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,
|
|
relation varchar,
|
|
select_level varchar,
|
|
field_description varchar,
|
|
ttype varchar,
|
|
state varchar default 'base',
|
|
relation_field varchar,
|
|
translate boolean default False,
|
|
serialization_field_id integer references ir_model_fields on delete cascade,
|
|
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,
|
|
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,
|
|
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,
|
|
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) 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, 'Your 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, 'Your 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);
|