Aleksander Machniak
2013-05-31 cb3e2fe0c2e36e0f41d93015fb1b604d195f9047
commit | author | age
e019f2 1 -- Roundcube Webmail initial database structure
79fe17 2
T 3 -- 
a61bbb 4 -- Table structure for table contacts and related
79fe17 5 -- 
T 6
7 CREATE TABLE contacts (
8   contact_id integer NOT NULL PRIMARY KEY,
48be8f 9   user_id integer NOT NULL,
58e360 10   changed datetime NOT NULL default '0000-00-00 00:00:00',
1cded8 11   del tinyint NOT NULL default '0',
79fe17 12   name varchar(128) NOT NULL default '',
48be8f 13   email text NOT NULL default '',
79fe17 14   firstname varchar(128) NOT NULL default '',
T 15   surname varchar(128) NOT NULL default '',
3e2637 16   vcard text NOT NULL default '',
T 17   words text NOT NULL default ''
79fe17 18 );
T 19
48be8f 20 CREATE INDEX ix_contacts_user_id ON contacts(user_id, del);
79fe17 21
a61bbb 22
T 23 CREATE TABLE contactgroups (
24   contactgroup_id integer NOT NULL PRIMARY KEY,
25   user_id integer NOT NULL default '0',
26   changed datetime NOT NULL default '0000-00-00 00:00:00',
27   del tinyint NOT NULL default '0',
28   name varchar(128) NOT NULL default ''
29 );
30
31 CREATE INDEX ix_contactgroups_user_id ON contactgroups(user_id, del);
32
33
34 CREATE TABLE contactgroupmembers (
35   contactgroup_id integer NOT NULL,
36   contact_id integer NOT NULL default '0',
37   created datetime NOT NULL default '0000-00-00 00:00:00',
38   PRIMARY KEY (contactgroup_id, contact_id)
39 );
40
3a5476 41 CREATE INDEX ix_contactgroupmembers_contact_id ON contactgroupmembers (contact_id);
A 42
79fe17 43 -- 
T 44 -- Table structure for table identities
45 -- 
46
47 CREATE TABLE identities (
48   identity_id integer NOT NULL PRIMARY KEY,
49   user_id integer NOT NULL default '0',
a35062 50   changed datetime NOT NULL default '0000-00-00 00:00:00',
1cded8 51   del tinyint NOT NULL default '0',
T 52   standard tinyint NOT NULL default '0',
79fe17 53   name varchar(128) NOT NULL default '',
1cded8 54   organization varchar(128) default '',
79fe17 55   email varchar(128) NOT NULL default '',
T 56   "reply-to" varchar(128) NOT NULL default '',
57   bcc varchar(128) NOT NULL default '',
a0109c 58   signature text NOT NULL default '',
S 59   html_signature tinyint NOT NULL default '0'
79fe17 60 );
T 61
94fe9c 62 CREATE INDEX ix_identities_user_id ON identities(user_id, del);
565c47 63 CREATE INDEX ix_identities_email ON identities(email, del);
79fe17 64
T 65 -- 
66 -- Table structure for table users
67 -- 
68
69 CREATE TABLE users (
70   user_id integer NOT NULL PRIMARY KEY,
71   username varchar(128) NOT NULL default '',
72   mail_host varchar(128) NOT NULL default '',
73   created datetime NOT NULL default '0000-00-00 00:00:00',
e2402e 74   last_login datetime DEFAULT NULL,
debdda 75   language varchar(5),
79fe17 76   preferences text NOT NULL default ''
T 77 );
1cded8 78
ace511 79 CREATE UNIQUE INDEX ix_users_username ON users(username, mail_host);
1cded8 80
T 81 -- 
82 -- Table structure for table session
83 -- 
84
85 CREATE TABLE session (
b8ae0e 86   sess_id varchar(128) NOT NULL PRIMARY KEY,
1cded8 87   created datetime NOT NULL default '0000-00-00 00:00:00',
T 88   changed datetime NOT NULL default '0000-00-00 00:00:00',
84d06e 89   ip varchar(40) NOT NULL default '',
1cded8 90   vars text NOT NULL
T 91 );
92
3e48d2 93 CREATE INDEX ix_session_changed ON session (changed);
1cded8 94
66df08 95 --
A 96 -- Table structure for table dictionary
97 --
98
99 CREATE TABLE dictionary (
100     user_id integer DEFAULT NULL,
101    "language" varchar(5) NOT NULL,
102     data text NOT NULL
103 );
104
105 CREATE UNIQUE INDEX ix_dictionary_user_language ON dictionary (user_id, "language");
f8e48d 106
A 107 --
108 -- Table structure for table searches
109 --
110
111 CREATE TABLE searches (
112   search_id integer NOT NULL PRIMARY KEY,
113   user_id integer NOT NULL DEFAULT '0',
114   "type" smallint NOT NULL DEFAULT '0',
115   name varchar(128) NOT NULL,
116   data text NOT NULL
117 );
118
bd9190 119 CREATE UNIQUE INDEX ix_searches_user_type_name ON searches (user_id, type, name);
80152b 120
50abd5 121 -- 
AM 122 -- Table structure for table cache
123 -- 
124
125 CREATE TABLE cache (
126   user_id integer NOT NULL default 0,
127   cache_key varchar(128) NOT NULL default '',
128   created datetime NOT NULL default '0000-00-00 00:00:00',
129   data text NOT NULL
130 );
131
132 CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
133 CREATE INDEX ix_cache_created ON cache(created);
134
135 -- 
136 -- Table structure for table cache_shared
137 -- 
138
139 CREATE TABLE cache_shared (
140   cache_key varchar(255) NOT NULL,
141   created datetime NOT NULL default '0000-00-00 00:00:00',
142   data text NOT NULL
143 );
144
145 CREATE INDEX ix_cache_shared_cache_key ON cache_shared(cache_key);
146 CREATE INDEX ix_cache_shared_created ON cache_shared(created);
80152b 147
A 148 --
149 -- Table structure for table cache_index
150 --
151
152 CREATE TABLE cache_index (
153     user_id integer NOT NULL,
154     mailbox varchar(255) NOT NULL,
155     changed datetime NOT NULL default '0000-00-00 00:00:00',
609d39 156     valid smallint NOT NULL DEFAULT '0',
80152b 157     data text NOT NULL,
A 158     PRIMARY KEY (user_id, mailbox)
159 );
160
161 CREATE INDEX ix_cache_index_changed ON cache_index (changed);
162
163 --
164 -- Table structure for table cache_thread
165 --
166
167 CREATE TABLE cache_thread (
168     user_id integer NOT NULL,
169     mailbox varchar(255) NOT NULL,
170     changed datetime NOT NULL default '0000-00-00 00:00:00',
171     data text NOT NULL,
172     PRIMARY KEY (user_id, mailbox)
173 );
174
175 CREATE INDEX ix_cache_thread_changed ON cache_thread (changed);
176
177 --
178 -- Table structure for table cache_messages
179 --
180
181 CREATE TABLE cache_messages (
182     user_id integer NOT NULL,
183     mailbox varchar(255) NOT NULL,
184     uid integer NOT NULL,
185     changed datetime NOT NULL default '0000-00-00 00:00:00',
186     data text NOT NULL,
609d39 187     flags integer NOT NULL DEFAULT '0',
80152b 188     PRIMARY KEY (user_id, mailbox, uid)
A 189 );
190
191 CREATE INDEX ix_cache_messages_changed ON cache_messages (changed);
b7e7c8 192
AM 193 --
194 -- Table structure for table system
195 --
196
197 CREATE TABLE system (
198   name varchar(64) NOT NULL PRIMARY KEY,
199   value text NOT NULL
200 );
201
50abd5 202 INSERT INTO system (name, value) VALUES ('roundcube-version', '2013052500');