]> git.donarmstrong.com Git - roundcube.git/blob - SQL/postgres.initial.sql
Imported Upstream version 0.1.1
[roundcube.git] / SQL / postgres.initial.sql
1 --
2 -- Sequence "user_ids"
3 -- Name: user_ids; Type: SEQUENCE; Schema: public; Owner: postgres
4 --
5
6 CREATE SEQUENCE user_ids
7     INCREMENT BY 1
8     NO MAXVALUE
9     NO MINVALUE
10     CACHE 1;
11
12 --
13 -- Table "users"
14 -- Name: users; Type: TABLE; Schema: public; Owner: postgres
15 --
16
17 CREATE TABLE users (
18     user_id integer DEFAULT nextval('user_ids'::text) PRIMARY KEY,
19     username character varying(128) DEFAULT ''::character varying NOT NULL,
20     mail_host character varying(128) DEFAULT ''::character varying NOT NULL,
21     alias character varying(128) DEFAULT ''::character varying NOT NULL,
22     created timestamp with time zone DEFAULT now() NOT NULL,
23     last_login timestamp with time zone DEFAULT now() NOT NULL,
24     "language" character varying(5) DEFAULT 'en'::character varying NOT NULL,
25     preferences text DEFAULT ''::text NOT NULL
26 );
27
28
29 --
30 -- Table "session"
31 -- Name: session; Type: TABLE; Schema: public; Owner: postgres
32 --
33
34 CREATE TABLE "session" (
35     sess_id character varying(40) DEFAULT ''::character varying PRIMARY KEY,
36     created timestamp with time zone DEFAULT now() NOT NULL,
37     changed timestamp with time zone DEFAULT now() NOT NULL,
38     ip character varying(41) NOT NULL,
39     vars text NOT NULL
40 );
41
42
43
44 --
45 -- Sequence "identity_ids"
46 -- Name: identity_ids; Type: SEQUENCE; Schema: public; Owner: postgres
47 --
48
49 CREATE SEQUENCE identity_ids
50     START WITH 1
51     INCREMENT BY 1
52     NO MAXVALUE
53     NO MINVALUE
54     CACHE 1;
55
56 --
57 -- Table "identities"
58 -- Name: identities; Type: TABLE; Schema: public; Owner: postgres
59 --
60
61 CREATE TABLE identities (
62     identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY,
63     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
64     del integer DEFAULT 0 NOT NULL,
65     standard integer DEFAULT 0 NOT NULL,
66     name character varying(128) NOT NULL,
67     organization character varying(128),
68     email character varying(128) NOT NULL,
69     "reply-to" character varying(128),
70     bcc character varying(128),
71     signature text,
72     html_signature integer DEFAULT 0 NOT NULL
73 );
74
75 CREATE INDEX identities_user_id_idx ON identities (user_id);
76
77
78 --
79 -- Sequence "contact_ids"
80 -- Name: contact_ids; Type: SEQUENCE; Schema: public; Owner: postgres
81 --
82
83 CREATE SEQUENCE contact_ids
84     START WITH 1
85     INCREMENT BY 1
86     NO MAXVALUE
87     NO MINVALUE
88     CACHE 1;
89
90 --
91 -- Table "contacts"
92 -- Name: contacts; Type: TABLE; Schema: public; Owner: postgres
93 --
94
95 CREATE TABLE contacts (
96     contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY,
97     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
98     changed timestamp with time zone DEFAULT now() NOT NULL,
99     del integer DEFAULT 0 NOT NULL,
100     name character varying(128) DEFAULT ''::character varying NOT NULL,
101     email character varying(128) DEFAULT ''::character varying NOT NULL,
102     firstname character varying(128) DEFAULT ''::character varying NOT NULL,
103     surname character varying(128) DEFAULT ''::character varying NOT NULL,
104     vcard text
105 );
106
107 CREATE INDEX contacts_user_id_idx ON contacts (user_id);
108
109 --
110 -- Sequence "cache_ids"
111 -- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres
112 --
113
114 CREATE SEQUENCE cache_ids
115     INCREMENT BY 1
116     NO MAXVALUE
117     NO MINVALUE
118     CACHE 1;
119
120 --
121 -- Table "cache"
122 -- Name: cache; Type: TABLE; Schema: public; Owner: postgres
123 --
124
125 CREATE TABLE "cache" (
126     cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY,
127     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
128     session_id character varying(40) REFERENCES "session" (sess_id),
129     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
130     created timestamp with time zone DEFAULT now() NOT NULL,
131     data text NOT NULL
132 );
133
134 CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key);
135
136 --
137 -- Sequence "message_ids"
138 -- Name: message_ids; Type: SEQUENCE; Schema: public; Owner: postgres
139 --
140
141 CREATE SEQUENCE message_ids
142     INCREMENT BY 1
143     NO MAXVALUE
144     NO MINVALUE
145     CACHE 1;
146
147 --
148 -- Table "messages"
149 -- Name: messages; Type: TABLE; Schema: public; Owner: postgres
150 --
151
152 CREATE TABLE "messages" (
153     message_id integer DEFAULT nextval('message_ids'::text) PRIMARY KEY,
154     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
155     del integer DEFAULT 0 NOT NULL,
156     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
157     created timestamp with time zone DEFAULT now() NOT NULL,
158     idx integer DEFAULT 0 NOT NULL,
159     uid integer DEFAULT 0 NOT NULL,
160     subject character varying(128) DEFAULT ''::character varying NOT NULL,
161     "from" character varying(128) DEFAULT ''::character varying NOT NULL,
162     "to" character varying(128) DEFAULT ''::character varying NOT NULL,
163     cc character varying(128) DEFAULT ''::character varying NOT NULL,
164     date timestamp with time zone NOT NULL,
165     size integer DEFAULT 0 NOT NULL,
166     headers text NOT NULL,
167     structure text
168 );
169
170 ALTER TABLE "messages" ADD UNIQUE (user_id, cache_key, uid);