source: trunk/install/piwigo_structure-pdo-sqlite.sql @ 5920

Last change on this file since 5920 was 5452, checked in by nikrou, 15 years ago

Fix some issues with database engines :

  • insert into syntax not correct for posgresql or sqlite
  • add languages table
  • incorrect function for row count (sqlite)
File size: 16.0 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-- Table structure for table `piwigo_languages`
210-----------------------------------------------------------------------------
211
212DROP TABLE IF EXISTS piwigo_languages;
213CREATE TABLE piwigo_languages
214(
215  "id" varchar(64) NOT NULL default '',
216  "version" varchar(64) NOT NULL default '0',
217  "name" varchar(64) default NULL,
218  PRIMARY KEY  ("id")
219);
220
221-----------------------------------------------------------------------------
222-- piwigo_old_permalinks
223-----------------------------------------------------------------------------
224
225DROP TABLE IF EXISTS piwigo_old_permalinks;
226CREATE TABLE piwigo_old_permalinks
227(
228  "cat_id" INTEGER default 0 NOT NULL,
229  "permalink" VARCHAR(64) default '' NOT NULL,
230  "date_deleted" TIMESTAMP NOT NULL,
231  "last_hit" TIMESTAMP,
232  "hit" INTEGER default 0 NOT NULL,
233  PRIMARY KEY ("permalink")
234);
235
236
237-----------------------------------------------------------------------------
238-- piwigo_plugins
239-----------------------------------------------------------------------------
240
241DROP TABLE IF EXISTS piwigo_plugins;
242CREATE TABLE piwigo_plugins
243(
244  "id" VARCHAR(64) default '' NOT NULL,
245  "state" VARCHAR(50) default 'inactive',
246  "version" VARCHAR(64) default '0' NOT NULL,
247  PRIMARY KEY ("id")
248);
249
250
251-----------------------------------------------------------------------------
252-- piwigo_rate
253-----------------------------------------------------------------------------
254
255DROP TABLE IF EXISTS piwigo_rate;
256CREATE TABLE piwigo_rate
257(
258  "user_id" INTEGER default 0 NOT NULL,
259  "element_id" INTEGER default 0 NOT NULL,
260  "anonymous_id" VARCHAR(45) default '' NOT NULL,
261  "rate" INTEGER default 0 NOT NULL,
262  "date" DATE  NOT NULL,
263  PRIMARY KEY ("user_id","element_id","anonymous_id")
264);
265
266
267-----------------------------------------------------------------------------
268-- piwigo_search
269-----------------------------------------------------------------------------
270
271DROP TABLE IF EXISTS piwigo_search;
272CREATE TABLE piwigo_search
273(
274  "id" INTEGER NOT NULL,
275  "last_seen" DATE,
276  "rules" TEXT,
277  PRIMARY KEY ("id")
278);
279
280
281-----------------------------------------------------------------------------
282-- piwigo_sessions
283-----------------------------------------------------------------------------
284
285DROP TABLE IF EXISTS piwigo_sessions;
286CREATE TABLE piwigo_sessions
287(
288  "id" VARCHAR(255) default '' NOT NULL,
289  "data" TEXT  NOT NULL,
290  "expiration" TIMESTAMP NOT NULL,
291  PRIMARY KEY ("id")
292);
293
294
295-----------------------------------------------------------------------------
296-- piwigo_sites
297-----------------------------------------------------------------------------
298
299DROP TABLE IF EXISTS piwigo_sites;
300CREATE TABLE piwigo_sites
301(
302  "id" INTEGER NOT NULL,
303  "galleries_url" VARCHAR(255) default '' NOT NULL,
304  PRIMARY KEY ("id"),
305  CONSTRAINT "sites_ui1" UNIQUE ("galleries_url")
306);
307
308
309-----------------------------------------------------------------------------
310-- piwigo_stuffs
311-----------------------------------------------------------------------------
312
313DROP TABLE IF EXISTS piwigo_stuffs;
314CREATE TABLE piwigo_stuffs
315(
316  "id" INTEGER  NOT NULL,
317  "pos" INTEGER  NOT NULL,
318  "name" TEXT  NOT NULL,
319  "descr" VARCHAR(255),
320  "type" VARCHAR(255)  NOT NULL,
321  "datas" TEXT,
322  "users" VARCHAR(255),
323  "groups" VARCHAR(255),
324  "show_title" CHAR  NOT NULL,
325  "on_home" CHAR  NOT NULL,
326  "on_cats" CHAR  NOT NULL,
327  "on_picture" CHAR  NOT NULL,
328  "id_line" VARCHAR(1),
329  "width" INTEGER,
330  PRIMARY KEY ("id")
331);
332
333
334CREATE INDEX "on_home" ON "piwigo_stuffs" ("on_home");
335
336CREATE INDEX "on_cats" ON "piwigo_stuffs" ("on_cats");
337
338CREATE INDEX "on_picture" ON "piwigo_stuffs" ("on_picture");
339
340-----------------------------------------------------------------------------
341-- piwigo_tags
342-----------------------------------------------------------------------------
343
344DROP TABLE IF EXISTS piwigo_tags;
345CREATE TABLE piwigo_tags
346(
347  "id" INTEGER NOT NULL,
348  "name" VARCHAR(255) default '' NOT NULL,
349  "url_name" VARCHAR(255) default '' NOT NULL,
350  PRIMARY KEY ("id")
351);
352
353
354CREATE INDEX "tags_i1" ON "piwigo_tags" ("url_name");
355
356-----------------------------------------------------------------------------
357-- piwigo_themes
358-----------------------------------------------------------------------------
359
360DROP TABLE IF EXISTS "piwigo_themes" CASCADE;
361CREATE TABLE "piwigo_themes"
362(
363  "id" varchar(64) default '' NOT NULL,
364  "version" varchar(64) NOT NULL default '0',
365  "name" varchar(64) default NULL,
366  PRIMARY KEY  ("id")
367);
368
369-----------------------------------------------------------------------------
370-- piwigo_upgrade
371-----------------------------------------------------------------------------
372
373DROP TABLE IF EXISTS piwigo_upgrade;
374CREATE TABLE piwigo_upgrade
375(
376  "id" VARCHAR(20) default '' NOT NULL,
377  "applied" TIMESTAMP NOT NULL,
378  "description" VARCHAR(255),
379  PRIMARY KEY ("id")
380);
381
382
383-----------------------------------------------------------------------------
384-- piwigo_user_access
385-----------------------------------------------------------------------------
386
387DROP TABLE IF EXISTS piwigo_user_access;
388CREATE TABLE piwigo_user_access
389(
390  "user_id" INTEGER default 0 NOT NULL,
391  "cat_id" INTEGER default 0 NOT NULL,
392  PRIMARY KEY ("user_id","cat_id")
393);
394
395
396-----------------------------------------------------------------------------
397-- piwigo_user_cache
398-----------------------------------------------------------------------------
399
400DROP TABLE IF EXISTS piwigo_user_cache;
401CREATE TABLE piwigo_user_cache
402(
403  "user_id" INTEGER default 0 NOT NULL,
404  "need_update" BOOLEAN default true,
405  "cache_update_time" INTEGER default 0 NOT NULL,
406  "forbidden_categories" TEXT,
407  "nb_total_images" INTEGER,
408  "image_access_type" VARCHAR(50) default 'NOT IN',
409  "image_access_list" TEXT,
410  PRIMARY KEY ("user_id")
411);
412
413
414-----------------------------------------------------------------------------
415-- piwigo_user_cache_categories
416-----------------------------------------------------------------------------
417
418DROP TABLE IF EXISTS piwigo_user_cache_categories;
419CREATE TABLE piwigo_user_cache_categories
420(
421  "user_id" INTEGER default 0 NOT NULL,
422  "cat_id" INTEGER default 0 NOT NULL,
423  "date_last" TIMESTAMP,
424  "max_date_last" TIMESTAMP,
425  "nb_images" INTEGER default 0 NOT NULL,
426  "count_images" INTEGER default 0,
427  "count_categories" INTEGER default 0,
428  PRIMARY KEY ("user_id","cat_id")
429);
430
431
432-----------------------------------------------------------------------------
433-- piwigo_user_feed
434-----------------------------------------------------------------------------
435
436DROP TABLE IF EXISTS piwigo_user_feed;
437CREATE TABLE piwigo_user_feed
438(
439  "id" VARCHAR(50) default '' NOT NULL,
440  "user_id" INTEGER default 0 NOT NULL,
441  "last_check" TIMESTAMP,
442  PRIMARY KEY ("id")
443);
444
445
446-----------------------------------------------------------------------------
447-- piwigo_user_group
448-----------------------------------------------------------------------------
449
450DROP TABLE IF EXISTS piwigo_user_group;
451CREATE TABLE piwigo_user_group
452(
453  "user_id" INTEGER default 0 NOT NULL,
454  "group_id" INTEGER default 0 NOT NULL,
455  PRIMARY KEY ("user_id","group_id")
456);
457
458
459-----------------------------------------------------------------------------
460-- piwigo_user_infos
461-----------------------------------------------------------------------------
462
463DROP TABLE IF EXISTS piwigo_user_infos;
464CREATE TABLE piwigo_user_infos
465(
466  "user_id" INTEGER default 0 NOT NULL,
467  "nb_image_line" INTEGER default 5 NOT NULL,
468  "nb_line_page" INTEGER default 3 NOT NULL,
469  "status" VARCHAR(50) default 'guest',
470  "adviser" BOOLEAN default false,
471  "language" VARCHAR(50) default 'en_UK' NOT NULL,
472  "maxwidth" INTEGER,
473  "maxheight" INTEGER,
474  "expand" BOOLEAN default false,
475  "show_nb_comments" BOOLEAN default false,
476  "show_nb_hits" BOOLEAN default false,
477  "recent_period" INTEGER default 7 NOT NULL,
478  "theme" VARCHAR(255) default 'Sylvia' NOT NULL,
479  "registration_date" TIMESTAMP NOT NULL,
480  "enabled_high" BOOLEAN default true,
481  "level" INTEGER default 0 NOT NULL,
482  PRIMARY KEY ("user_id"),
483  CONSTRAINT "user_infos_ui1" UNIQUE ("user_id")
484);
485
486
487-----------------------------------------------------------------------------
488-- piwigo_user_mail_notification
489-----------------------------------------------------------------------------
490
491DROP TABLE IF EXISTS piwigo_user_mail_notification;
492CREATE TABLE piwigo_user_mail_notification
493(
494  "user_id" INTEGER default 0 NOT NULL,
495  "check_key" VARCHAR(16) default '' NOT NULL,
496  "enabled" BOOLEAN default false,
497  "last_send" TIMESTAMP,
498  PRIMARY KEY ("user_id"),
499  CONSTRAINT "user_mail_notification_ui1" UNIQUE ("check_key")
500);
501
502
503-----------------------------------------------------------------------------
504-- piwigo_users
505-----------------------------------------------------------------------------
506
507DROP TABLE IF EXISTS piwigo_users;
508CREATE TABLE piwigo_users
509(
510  "id" INTEGER NOT NULL,
511  "username" VARCHAR(100) default '' NOT NULL,
512  "password" VARCHAR(32),
513  "mail_address" VARCHAR(255),
514  PRIMARY KEY ("id"),
515  CONSTRAINT "users_ui1" UNIQUE ("username")
516);
517
518
519-----------------------------------------------------------------------------
520-- piwigo_comments
521-----------------------------------------------------------------------------
522
523DROP TABLE IF EXISTS piwigo_comments;
524CREATE TABLE piwigo_comments
525(
526  "id" INTEGER NOT NULL,
527  "image_id" INTEGER default 0 NOT NULL,
528  "date" TIMESTAMP  NOT NULL,
529  "author" VARCHAR(255),
530  "content" TEXT,
531  "validated" BOOLEAN default false,
532  "validation_date" TIMESTAMP,
533  "author_id" INTEGER REFERENCES "piwigo_users" (id),
534  PRIMARY KEY ("id")
535);
536
537CREATE INDEX "comments_i2" ON "piwigo_comments" ("validation_date");
538CREATE INDEX "comments_i1" ON "piwigo_comments" ("image_id");
539
540-----------------------------------------------------------------------------
541-- piwigo_waiting
542-----------------------------------------------------------------------------
543
544DROP TABLE IF EXISTS piwigo_waiting;
545CREATE TABLE piwigo_waiting
546(
547  "id" INTEGER NOT NULL,
548  "storage_category_id" INTEGER default 0 NOT NULL,
549  "file" VARCHAR(255) default '' NOT NULL,
550  "username" VARCHAR(255) default '' NOT NULL,
551  "mail_address" VARCHAR(255) default '' NOT NULL,
552  "date" INTEGER default 0 NOT NULL,
553  "tn_ext" CHAR(3),
554  "validated" BOOLEAN default false,
555  "infos" TEXT,
556  PRIMARY KEY ("id")
557);
558
Note: See TracBrowser for help on using the repository browser.