alecpl
2008-11-22 dcf780a6bd5065ffb0dcc76233b1e5f601e258d2
commit | author | age
977a29 1 --
T 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
f5dc2a 12 --
1cded8 13 -- Table "users"
f5dc2a 14 -- Name: users; Type: TABLE; Schema: public; Owner: postgres
S 15 --
16
17 CREATE TABLE users (
15a9d1 18     user_id integer DEFAULT nextval('user_ids'::text) PRIMARY KEY,
f5dc2a 19     username character varying(128) DEFAULT ''::character varying NOT NULL,
S 20     mail_host character varying(128) DEFAULT ''::character varying NOT NULL,
42b113 21     alias character varying(128) DEFAULT ''::character varying NOT NULL,
f5dc2a 22     created timestamp with time zone DEFAULT now() NOT NULL,
S 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
6cb778 28 CREATE INDEX users_username_id_idx ON users (username);
A 29 CREATE INDEX users_alias_id_idx ON users (alias);
f5dc2a 30
b59474 31   
f5dc2a 32 --
1cded8 33 -- Table "session"
T 34 -- Name: session; Type: TABLE; Schema: public; Owner: postgres
35 --
36
37 CREATE TABLE "session" (
15a9d1 38     sess_id character varying(40) DEFAULT ''::character varying PRIMARY KEY,
1cded8 39     created timestamp with time zone DEFAULT now() NOT NULL,
T 40     changed timestamp with time zone DEFAULT now() NOT NULL,
84d06e 41     ip character varying(41) NOT NULL,
1cded8 42     vars text NOT NULL
T 43 );
44
3e48d2 45 CREATE INDEX session_changed_idx ON session (changed);
1cded8 46
b59474 47
T 48 --
49 -- Sequence "identity_ids"
50 -- Name: identity_ids; Type: SEQUENCE; Schema: public; Owner: postgres
51 --
52
53 CREATE SEQUENCE identity_ids
54     START WITH 1
55     INCREMENT BY 1
56     NO MAXVALUE
57     NO MINVALUE
58     CACHE 1;
1cded8 59
T 60 --
61 -- Table "identities"
62 -- Name: identities; Type: TABLE; Schema: public; Owner: postgres
63 --
64
65 CREATE TABLE identities (
15a9d1 66     identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY,
6cb778 67     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
1cded8 68     del integer DEFAULT 0 NOT NULL,
T 69     standard integer DEFAULT 0 NOT NULL,
70     name character varying(128) NOT NULL,
71     organization character varying(128),
72     email character varying(128) NOT NULL,
73     "reply-to" character varying(128),
74     bcc character varying(128),
a0109c 75     signature text,
S 76     html_signature integer DEFAULT 0 NOT NULL
1cded8 77 );
T 78
6cb778 79 CREATE INDEX identities_user_id_idx ON identities (user_id);
b59474 80
T 81
82 --
83 -- Sequence "contact_ids"
84 -- Name: contact_ids; Type: SEQUENCE; Schema: public; Owner: postgres
85 --
86
87 CREATE SEQUENCE contact_ids
88     START WITH 1
89     INCREMENT BY 1
90     NO MAXVALUE
91     NO MINVALUE
92     CACHE 1;
1cded8 93
T 94 --
95 -- Table "contacts"
96 -- Name: contacts; Type: TABLE; Schema: public; Owner: postgres
97 --
98
99 CREATE TABLE contacts (
15a9d1 100     contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY,
6cb778 101     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
1cded8 102     changed timestamp with time zone DEFAULT now() NOT NULL,
T 103     del integer DEFAULT 0 NOT NULL,
104     name character varying(128) DEFAULT ''::character varying NOT NULL,
105     email character varying(128) DEFAULT ''::character varying NOT NULL,
106     firstname character varying(128) DEFAULT ''::character varying NOT NULL,
107     surname character varying(128) DEFAULT ''::character varying NOT NULL,
108     vcard text
109 );
110
6cb778 111 CREATE INDEX contacts_user_id_idx ON contacts (user_id);
1cded8 112
T 113 --
b59474 114 -- Sequence "cache_ids"
T 115 -- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres
116 --
117
118 CREATE SEQUENCE cache_ids
119     INCREMENT BY 1
120     NO MAXVALUE
121     NO MINVALUE
122     CACHE 1;
123
124 --
1cded8 125 -- Table "cache"
T 126 -- Name: cache; Type: TABLE; Schema: public; Owner: postgres
127 --
128
129 CREATE TABLE "cache" (
15a9d1 130     cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY,
6cb778 131     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
1cded8 132     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
T 133     created timestamp with time zone DEFAULT now() NOT NULL,
134     data text NOT NULL
135 );
136
edc63c 137 CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key);
1cded8 138
T 139 --
b59474 140 -- Sequence "message_ids"
T 141 -- Name: message_ids; Type: SEQUENCE; Schema: public; Owner: postgres
142 --
143
144 CREATE SEQUENCE message_ids
145     INCREMENT BY 1
146     NO MAXVALUE
147     NO MINVALUE
148     CACHE 1;
149
150 --
1cded8 151 -- Table "messages"
T 152 -- Name: messages; Type: TABLE; Schema: public; Owner: postgres
153 --
154
c98f3b 155 CREATE TABLE messages (
15a9d1 156     message_id integer DEFAULT nextval('message_ids'::text) PRIMARY KEY,
6cb778 157     user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
1cded8 158     del integer DEFAULT 0 NOT NULL,
T 159     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
b59474 160     created timestamp with time zone DEFAULT now() NOT NULL,
1cded8 161     idx integer DEFAULT 0 NOT NULL,
T 162     uid integer DEFAULT 0 NOT NULL,
163     subject character varying(128) DEFAULT ''::character varying NOT NULL,
164     "from" character varying(128) DEFAULT ''::character varying NOT NULL,
165     "to" character varying(128) DEFAULT ''::character varying NOT NULL,
166     cc character varying(128) DEFAULT ''::character varying NOT NULL,
167     date timestamp with time zone NOT NULL,
168     size integer DEFAULT 0 NOT NULL,
169     headers text NOT NULL,
f7bfec 170     structure text
1cded8 171 );
T 172
c98f3b 173 ALTER TABLE messages ADD UNIQUE (user_id, cache_key, uid);
A 174 CREATE INDEX messages_created_idx ON messages (created);