source: trunk/install/piwigo_structure-sqlite.sql @ 5192

Last change on this file since 5192 was 5192, checked in by nikrou, 14 years ago

Fix some sql issues :

  • permalink that use if() syntax
  • add tables themes for other database engines that mysql
File size: 15.6 KB
Line 
1-----------------------------------------------------------------------------
2-- piwigo_caddie
3-----------------------------------------------------------------------------
4
5DROP TABLE IF EXISTS piwigo_caddie;
6CREATE TABLE "piwigo_caddie"
7(
8  "user_id" INTEGER default 0 NOT NULL,
9  "element_id" INTEGER default 0 NOT NULL,
10  PRIMARY KEY ("user_id","element_id")
11);
12
13-----------------------------------------------------------------------------
14-- piwigo_categories
15-----------------------------------------------------------------------------
16
17DROP TABLE IF EXISTS piwigo_categories;
18CREATE TABLE "piwigo_categories"
19(
20  "id" INTEGER NOT NULL,
21  "name" VARCHAR(255) default '' NOT NULL,
22  "id_uppercat" INTEGER,
23  "comment" TEXT,
24  "dir" VARCHAR(255),
25  "rank" INTEGER,
26  "status" VARCHAR(50) default 'public',
27  "site_id" INTEGER default 1,
28  "visible" BOOLEAN default true,
29  "uploadable" BOOLEAN default false,
30  "representative_picture_id" INTEGER,
31  "uppercats" TEXT,
32  "commentable" BOOLEAN default true,
33  "global_rank" VARCHAR(255),
34  "image_order" VARCHAR(128),
35  "permalink" VARCHAR(64),
36  PRIMARY KEY ("id"),
37  CONSTRAINT "categories_i3" UNIQUE ("permalink")
38);
39
40CREATE INDEX "categories_i2" ON "piwigo_categories" ("id_uppercat");
41
42-----------------------------------------------------------------------------
43-- piwigo_config
44-----------------------------------------------------------------------------
45
46DROP TABLE IF EXISTS piwigo_config;
47CREATE TABLE piwigo_config
48(
49  "param" VARCHAR(40) default '' NOT NULL,
50  "value" TEXT,
51  "comment" VARCHAR(255),
52  PRIMARY KEY ("param")
53);
54
55-----------------------------------------------------------------------------
56-- piwigo_favorites
57-----------------------------------------------------------------------------
58
59DROP TABLE IF EXISTS piwigo_favorites;
60CREATE TABLE piwigo_favorites
61(
62  "user_id" INTEGER default 0 NOT NULL,
63  "image_id" INTEGER default 0 NOT NULL,
64  PRIMARY KEY ("user_id","image_id")
65);
66
67
68-----------------------------------------------------------------------------
69-- piwigo_group_access
70-----------------------------------------------------------------------------
71
72DROP TABLE IF EXISTS piwigo_group_access;
73CREATE TABLE piwigo_group_access
74(
75  "group_id" INTEGER default 0 NOT NULL,
76  "cat_id" INTEGER default 0 NOT NULL,
77  PRIMARY KEY ("group_id","cat_id")
78);
79
80-----------------------------------------------------------------------------
81-- piwigo_groups
82-----------------------------------------------------------------------------
83
84DROP TABLE IF EXISTS piwigo_groups;
85CREATE TABLE piwigo_groups
86(
87  "id" INTEGER NOT NULL,
88  "name" VARCHAR(255) default '' NOT NULL,
89  "is_default" BOOLEAN default false,
90  PRIMARY KEY ("id"),
91  CONSTRAINT "groups_ui1" UNIQUE ("name")
92);
93
94-----------------------------------------------------------------------------
95-- piwigo_history
96-----------------------------------------------------------------------------
97
98DROP TABLE IF EXISTS piwigo_history;
99CREATE TABLE piwigo_history
100(
101  "id" INTEGER NOT NULL,
102  "date" DATE NOT NULL,
103  "time" TIME NOT NULL,
104  "user_id" INTEGER default 0 NOT NULL,
105  "ip" VARCHAR(15) default '' NOT NULL,
106  "section" VARCHAR(50) default NULL,
107  "category_id" INTEGER,
108  "tag_ids" VARCHAR(50),
109  "image_id" INTEGER,
110  "summarized" BOOLEAN default false,
111  "image_type" VARCHAR(50) default NULL,
112  PRIMARY KEY ("id")
113);
114
115
116CREATE INDEX "history_i1" ON "piwigo_history" ("summarized");
117
118-----------------------------------------------------------------------------
119-- piwigo_history_summary
120-----------------------------------------------------------------------------
121
122DROP TABLE IF EXISTS piwigo_history_summary;
123CREATE TABLE piwigo_history_summary
124(
125  "year" INTEGER default 0 NOT NULL,
126  "month" INTEGER,
127  "day" INTEGER,
128  "hour" INTEGER,
129  "nb_pages" INTEGER,
130  "id" INTEGER NOT NULL,
131  PRIMARY KEY ("id"),
132  CONSTRAINT "history_summary_ymdh" UNIQUE ("year","month","day","hour")
133);
134
135-----------------------------------------------------------------------------
136-- piwigo_image_category
137-----------------------------------------------------------------------------
138
139DROP TABLE IF EXISTS piwigo_image_category;
140CREATE TABLE piwigo_image_category
141(
142  "image_id" INTEGER default 0 NOT NULL,
143  "category_id" INTEGER default 0 NOT NULL,
144  "rank" INTEGER,
145  PRIMARY KEY ("image_id","category_id")
146);
147
148
149CREATE INDEX "image_category_i1" ON "piwigo_image_category" ("category_id");
150
151-----------------------------------------------------------------------------
152-- piwigo_image_tag
153-----------------------------------------------------------------------------
154
155DROP TABLE IF EXISTS piwigo_image_tag;
156CREATE TABLE piwigo_image_tag
157(
158  "image_id" INTEGER default 0 NOT NULL,
159  "tag_id" INTEGER default 0 NOT NULL,
160  PRIMARY KEY ("image_id","tag_id")
161);
162
163
164CREATE INDEX "image_tag_i1" ON "piwigo_image_tag" ("tag_id");
165
166-----------------------------------------------------------------------------
167-- piwigo_images
168-----------------------------------------------------------------------------
169
170DROP TABLE IF EXISTS piwigo_images;
171CREATE TABLE piwigo_images
172(
173  "id" INTEGER NOT NULL,
174  "file" VARCHAR(255) default '' NOT NULL,
175  "date_available" TIMESTAMP NOT NULL,
176  "date_creation" TIMESTAMP,
177  "tn_ext" VARCHAR(4) default '',
178  "name" VARCHAR(255),
179  "comment" TEXT,
180  "author" VARCHAR(255),
181  "hit" INTEGER default 0 NOT NULL,
182  "filesize" INTEGER,
183  "width" INTEGER,
184  "height" INTEGER,
185  "representative_ext" VARCHAR(4),
186  "date_metadata_update" DATE,
187  "average_rate" FLOAT,
188  "has_high" BOOLEAN default false,
189  "path" VARCHAR(255) default '' NOT NULL,
190  "storage_category_id" INTEGER,
191  "high_filesize" INTEGER,
192  "level" INTEGER default 0 NOT NULL,
193  "md5sum" CHAR(32),
194  PRIMARY KEY ("id")
195);
196
197
198CREATE INDEX "images_i2" ON "piwigo_images" ("date_available");
199
200CREATE INDEX "images_i3" ON "piwigo_images" ("average_rate");
201
202CREATE INDEX "images_i4" ON "piwigo_images" ("hit");
203
204CREATE INDEX "images_i5" ON "piwigo_images" ("date_creation");
205
206CREATE INDEX "images_i1" ON "piwigo_images" ("storage_category_id");
207
208-----------------------------------------------------------------------------
209-- piwigo_old_permalinks
210-----------------------------------------------------------------------------
211
212DROP TABLE IF EXISTS piwigo_old_permalinks;
213CREATE TABLE piwigo_old_permalinks
214(
215  "cat_id" INTEGER default 0 NOT NULL,
216  "permalink" VARCHAR(64) default '' NOT NULL,
217  "date_deleted" TIMESTAMP NOT NULL,
218  "last_hit" TIMESTAMP,
219  "hit" INTEGER default 0 NOT NULL,
220  PRIMARY KEY ("permalink")
221);
222
223
224-----------------------------------------------------------------------------
225-- piwigo_plugins
226-----------------------------------------------------------------------------
227
228DROP TABLE IF EXISTS piwigo_plugins;
229CREATE TABLE piwigo_plugins
230(
231  "id" VARCHAR(64) default '' NOT NULL,
232  "state" VARCHAR(50) default 'inactive',
233  "version" VARCHAR(64) default '0' NOT NULL,
234  PRIMARY KEY ("id")
235);
236
237
238-----------------------------------------------------------------------------
239-- piwigo_rate
240-----------------------------------------------------------------------------
241
242DROP TABLE IF EXISTS piwigo_rate;
243CREATE TABLE piwigo_rate
244(
245  "user_id" INTEGER default 0 NOT NULL,
246  "element_id" INTEGER default 0 NOT NULL,
247  "anonymous_id" VARCHAR(45) default '' NOT NULL,
248  "rate" INTEGER default 0 NOT NULL,
249  "date" DATE  NOT NULL,
250  PRIMARY KEY ("user_id","element_id","anonymous_id")
251);
252
253
254-----------------------------------------------------------------------------
255-- piwigo_search
256-----------------------------------------------------------------------------
257
258DROP TABLE IF EXISTS piwigo_search;
259CREATE TABLE piwigo_search
260(
261  "id" INTEGER NOT NULL,
262  "last_seen" DATE,
263  "rules" TEXT,
264  PRIMARY KEY ("id")
265);
266
267
268-----------------------------------------------------------------------------
269-- piwigo_sessions
270-----------------------------------------------------------------------------
271
272DROP TABLE IF EXISTS piwigo_sessions;
273CREATE TABLE piwigo_sessions
274(
275  "id" VARCHAR(255) default '' NOT NULL,
276  "data" TEXT  NOT NULL,
277  "expiration" TIMESTAMP NOT NULL,
278  PRIMARY KEY ("id")
279);
280
281
282-----------------------------------------------------------------------------
283-- piwigo_sites
284-----------------------------------------------------------------------------
285
286DROP TABLE IF EXISTS piwigo_sites;
287CREATE TABLE piwigo_sites
288(
289  "id" INTEGER NOT NULL,
290  "galleries_url" VARCHAR(255) default '' NOT NULL,
291  PRIMARY KEY ("id"),
292  CONSTRAINT "sites_ui1" UNIQUE ("galleries_url")
293);
294
295
296-----------------------------------------------------------------------------
297-- piwigo_stuffs
298-----------------------------------------------------------------------------
299
300DROP TABLE IF EXISTS piwigo_stuffs;
301CREATE TABLE piwigo_stuffs
302(
303  "id" INTEGER  NOT NULL,
304  "pos" INTEGER  NOT NULL,
305  "name" TEXT  NOT NULL,
306  "descr" VARCHAR(255),
307  "type" VARCHAR(255)  NOT NULL,
308  "datas" TEXT,
309  "users" VARCHAR(255),
310  "groups" VARCHAR(255),
311  "show_title" CHAR  NOT NULL,
312  "on_home" CHAR  NOT NULL,
313  "on_cats" CHAR  NOT NULL,
314  "on_picture" CHAR  NOT NULL,
315  "id_line" VARCHAR(1),
316  "width" INTEGER,
317  PRIMARY KEY ("id")
318);
319
320
321CREATE INDEX "on_home" ON "piwigo_stuffs" ("on_home");
322
323CREATE INDEX "on_cats" ON "piwigo_stuffs" ("on_cats");
324
325CREATE INDEX "on_picture" ON "piwigo_stuffs" ("on_picture");
326
327-----------------------------------------------------------------------------
328-- piwigo_tags
329-----------------------------------------------------------------------------
330
331DROP TABLE IF EXISTS piwigo_tags;
332CREATE TABLE piwigo_tags
333(
334  "id" INTEGER NOT NULL,
335  "name" VARCHAR(255) default '' NOT NULL,
336  "url_name" VARCHAR(255) default '' NOT NULL,
337  PRIMARY KEY ("id")
338);
339
340
341CREATE INDEX "tags_i1" ON "piwigo_tags" ("url_name");
342
343-----------------------------------------------------------------------------
344-- piwigo_themes
345-----------------------------------------------------------------------------
346
347DROP TABLE IF EXISTS "piwigo_themes" CASCADE;
348CREATE TABLE "piwigo_themes"
349(
350  "id" varchar(64) default '' NOT NULL,
351  "version" varchar(64) NOT NULL default '0',
352  "name" varchar(64) default NULL,
353  PRIMARY KEY  ("id")
354);
355
356-----------------------------------------------------------------------------
357-- piwigo_upgrade
358-----------------------------------------------------------------------------
359
360DROP TABLE IF EXISTS piwigo_upgrade;
361CREATE TABLE piwigo_upgrade
362(
363  "id" VARCHAR(20) default '' NOT NULL,
364  "applied" TIMESTAMP NOT NULL,
365  "description" VARCHAR(255),
366  PRIMARY KEY ("id")
367);
368
369
370-----------------------------------------------------------------------------
371-- piwigo_user_access
372-----------------------------------------------------------------------------
373
374DROP TABLE IF EXISTS piwigo_user_access;
375CREATE TABLE piwigo_user_access
376(
377  "user_id" INTEGER default 0 NOT NULL,
378  "cat_id" INTEGER default 0 NOT NULL,
379  PRIMARY KEY ("user_id","cat_id")
380);
381
382
383-----------------------------------------------------------------------------
384-- piwigo_user_cache
385-----------------------------------------------------------------------------
386
387DROP TABLE IF EXISTS piwigo_user_cache;
388CREATE TABLE piwigo_user_cache
389(
390  "user_id" INTEGER default 0 NOT NULL,
391  "need_update" BOOLEAN default true,
392  "cache_update_time" INTEGER default 0 NOT NULL,
393  "forbidden_categories" TEXT,
394  "nb_total_images" INTEGER,
395  "image_access_type" VARCHAR(50) default 'NOT IN',
396  "image_access_list" TEXT,
397  PRIMARY KEY ("user_id")
398);
399
400
401-----------------------------------------------------------------------------
402-- piwigo_user_cache_categories
403-----------------------------------------------------------------------------
404
405DROP TABLE IF EXISTS piwigo_user_cache_categories;
406CREATE TABLE piwigo_user_cache_categories
407(
408  "user_id" INTEGER default 0 NOT NULL,
409  "cat_id" INTEGER default 0 NOT NULL,
410  "date_last" TIMESTAMP,
411  "max_date_last" TIMESTAMP,
412  "nb_images" INTEGER default 0 NOT NULL,
413  "count_images" INTEGER default 0,
414  "count_categories" INTEGER default 0,
415  PRIMARY KEY ("user_id","cat_id")
416);
417
418
419-----------------------------------------------------------------------------
420-- piwigo_user_feed
421-----------------------------------------------------------------------------
422
423DROP TABLE IF EXISTS piwigo_user_feed;
424CREATE TABLE piwigo_user_feed
425(
426  "id" VARCHAR(50) default '' NOT NULL,
427  "user_id" INTEGER default 0 NOT NULL,
428  "last_check" TIMESTAMP,
429  PRIMARY KEY ("id")
430);
431
432
433-----------------------------------------------------------------------------
434-- piwigo_user_group
435-----------------------------------------------------------------------------
436
437DROP TABLE IF EXISTS piwigo_user_group;
438CREATE TABLE piwigo_user_group
439(
440  "user_id" INTEGER default 0 NOT NULL,
441  "group_id" INTEGER default 0 NOT NULL,
442  PRIMARY KEY ("user_id","group_id")
443);
444
445
446-----------------------------------------------------------------------------
447-- piwigo_user_infos
448-----------------------------------------------------------------------------
449
450DROP TABLE IF EXISTS piwigo_user_infos;
451CREATE TABLE piwigo_user_infos
452(
453  "user_id" INTEGER default 0 NOT NULL,
454  "nb_image_line" INTEGER default 5 NOT NULL,
455  "nb_line_page" INTEGER default 3 NOT NULL,
456  "status" VARCHAR(50) default 'guest',
457  "adviser" BOOLEAN default false,
458  "language" VARCHAR(50) default 'en_UK' NOT NULL,
459  "maxwidth" INTEGER,
460  "maxheight" INTEGER,
461  "expand" BOOLEAN default false,
462  "show_nb_comments" BOOLEAN default false,
463  "show_nb_hits" BOOLEAN default false,
464  "recent_period" INTEGER default 7 NOT NULL,
465  "theme" VARCHAR(255) default 'Sylvia' NOT NULL,
466  "registration_date" TIMESTAMP NOT NULL,
467  "enabled_high" BOOLEAN default true,
468  "level" INTEGER default 0 NOT NULL,
469  PRIMARY KEY ("user_id"),
470  CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
471);
472
473
474-----------------------------------------------------------------------------
475-- piwigo_user_mail_notification
476-----------------------------------------------------------------------------
477
478DROP TABLE IF EXISTS piwigo_user_mail_notification;
479CREATE TABLE piwigo_user_mail_notification
480(
481  "user_id" INTEGER default 0 NOT NULL,
482  "check_key" VARCHAR(16) default '' NOT NULL,
483  "enabled" BOOLEAN default false,
484  "last_send" TIMESTAMP,
485  PRIMARY KEY ("user_id"),
486  CONSTRAINT "user_mail_notification_ui1" UNIQUE ("check_key")
487);
488
489
490-----------------------------------------------------------------------------
491-- piwigo_users
492-----------------------------------------------------------------------------
493
494DROP TABLE IF EXISTS piwigo_users;
495CREATE TABLE piwigo_users
496(
497  "id" INTEGER NOT NULL,
498  "username" VARCHAR(100) default '' NOT NULL,
499  "password" VARCHAR(32),
500  "mail_address" VARCHAR(255),
501  PRIMARY KEY ("id"),
502  CONSTRAINT "users_ui1" UNIQUE ("username")
503);
504
505
506-----------------------------------------------------------------------------
507-- piwigo_comments
508-----------------------------------------------------------------------------
509
510DROP TABLE IF EXISTS piwigo_comments;
511CREATE TABLE piwigo_comments
512(
513  "id" INTEGER NOT NULL,
514  "image_id" INTEGER default 0 NOT NULL,
515  "date" TIMESTAMP  NOT NULL,
516  "author" VARCHAR(255),
517  "content" TEXT,
518  "validated" BOOLEAN default false,
519  "validation_date" TIMESTAMP,
520  "author_id" INTEGER REFERENCES "piwigo_users" (id),
521  PRIMARY KEY ("id")
522);
523
524CREATE INDEX "comments_i2" ON "piwigo_comments" ("validation_date");
525CREATE INDEX "comments_i1" ON "piwigo_comments" ("image_id");
526
527-----------------------------------------------------------------------------
528-- piwigo_waiting
529-----------------------------------------------------------------------------
530
531DROP TABLE IF EXISTS piwigo_waiting;
532CREATE TABLE piwigo_waiting
533(
534  "id" INTEGER NOT NULL,
535  "storage_category_id" INTEGER default 0 NOT NULL,
536  "file" VARCHAR(255) default '' NOT NULL,
537  "username" VARCHAR(255) default '' NOT NULL,
538  "mail_address" VARCHAR(255) default '' NOT NULL,
539  "date" INTEGER default 0 NOT NULL,
540  "tn_ext" CHAR(3),
541  "validated" BOOLEAN default false,
542  "infos" TEXT,
543  PRIMARY KEY ("id")
544);
545
Note: See TracBrowser for help on using the repository browser.