webmcp
annotate demo-app/db/schema.sql @ 11:d76a8857ba62
Added ui.partial and other functions, which allow partial content replacement using XMLHttpRequests; Image support for ui.link
Also includes following changes:
- Fix for rocketcgi library to accept POST data content-types, which contain additional charset information.
- Support arrays passed as params to encode.url (only for keys ending with "[]")
- Version information changed to "1.0.7"
Documentation for added functions is not yet complete.
Also includes following changes:
- Fix for rocketcgi library to accept POST data content-types, which contain additional charset information.
- Support arrays passed as params to encode.url (only for keys ending with "[]")
- Version information changed to "1.0.7"
Documentation for added functions is not yet complete.
| author | jbe/bsw | 
|---|---|
| date | Fri Feb 12 18:40:22 2010 +0100 (2010-02-12) | 
| parents | 9fdfb27f8e67 | 
| children | 
| rev | line source | 
|---|---|
| jbe/bsw@0 | 1 -- only needed for database driven tempstore (see application config) | 
| jbe/bsw@0 | 2 CREATE TABLE "tempstore" ( | 
| jbe/bsw@0 | 3 "key" TEXT PRIMARY KEY, | 
| jbe/bsw@0 | 4 "data" BYTEA NOT NULL ); | 
| jbe/bsw@0 | 5 | 
| jbe/bsw@0 | 6 -- Attention: USER is a reserved word in PostgreSQL. We use it anyway in | 
| jbe/bsw@0 | 7 -- this example. Don't forget the double quotes where neccessary. | 
| jbe/bsw@0 | 8 CREATE TABLE "user" ( | 
| jbe/bsw@0 | 9 "id" SERIAL8 PRIMARY KEY, | 
| jbe/bsw@0 | 10 "ident" TEXT NOT NULL, | 
| jbe/bsw@0 | 11 "password" TEXT, | 
| jbe/bsw@0 | 12 "name" TEXT, | 
| jbe/bsw@0 | 13 "lang" TEXT, | 
| jbe/bsw@0 | 14 "write_priv" BOOLEAN NOT NULL DEFAULT FALSE, | 
| jbe/bsw@0 | 15 "admin" BOOLEAN NOT NULL DEFAULT FALSE ); | 
| jbe/bsw@0 | 16 | 
| jbe/bsw@0 | 17 CREATE TABLE "session" ( | 
| jbe/bsw@0 | 18 "ident" TEXT PRIMARY KEY, | 
| jbe/bsw@0 | 19 "csrf_secret" TEXT NOT NULL, | 
| jbe/bsw@0 | 20 "expiry" TIMESTAMPTZ NOT NULL DEFAULT NOW() + '24 hours', | 
| jbe/bsw@0 | 21 "user_id" INT8 REFERENCES "user" ("id") ON DELETE SET NULL ON UPDATE CASCADE ); | 
| jbe/bsw@0 | 22 | 
| jbe/bsw@0 | 23 CREATE TABLE "media_type" ( | 
| jbe/bsw@0 | 24 "id" SERIAL8 PRIMARY KEY, | 
| jbe/bsw@0 | 25 "name" TEXT NOT NULL, | 
| jbe/bsw@0 | 26 "description" TEXT ); | 
| jbe/bsw@0 | 27 | 
| jbe/bsw@0 | 28 CREATE TABLE "genre" ( | 
| jbe/bsw@0 | 29 "id" SERIAL8 PRIMARY KEY, | 
| jbe/bsw@0 | 30 "name" TEXT NOT NULL, | 
| jbe/bsw@0 | 31 "description" TEXT ); | 
| jbe/bsw@0 | 32 | 
| jbe/bsw@0 | 33 CREATE TABLE "medium" ( | 
| jbe/bsw@0 | 34 "id" SERIAL8 PRIMARY KEY, | 
| jbe/bsw@0 | 35 "media_type_id" INT8 NOT NULL REFERENCES "media_type" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, | 
| jbe/bsw@0 | 36 "name" TEXT NOT NULL, | 
| jbe/bsw@0 | 37 "copyprotected" BOOLEAN NOT NULL ); | 
| jbe/bsw@0 | 38 | 
| jbe/bsw@0 | 39 CREATE TABLE "classification" ( | 
| jbe/bsw@0 | 40 PRIMARY KEY ("medium_id", "genre_id"), | 
| jbe/bsw@0 | 41 "medium_id" INT8 REFERENCES "medium" ("id") ON DELETE CASCADE ON UPDATE CASCADE, | 
| jbe/bsw@0 | 42 "genre_id" INT8 REFERENCES "genre" ("id") ON DELETE CASCADE ON UPDATE CASCADE ); | 
| jbe/bsw@0 | 43 | 
| jbe/bsw@0 | 44 CREATE TABLE "track" ( | 
| jbe/bsw@0 | 45 "id" SERIAL8 PRIMARY KEY, | 
| jbe/bsw@0 | 46 "medium_id" INT8 NOT NULL REFERENCES "medium" ("id") ON DELETE CASCADE ON UPDATE CASCADE, | 
| jbe/bsw@0 | 47 "position" INT8 NOT NULL, | 
| jbe/bsw@0 | 48 "name" TEXT NOT NULL, | 
| jbe/bsw@0 | 49 "description" TEXT, | 
| jbe/bsw@0 | 50 "duration" INTERVAL, | 
| jbe/bsw@0 | 51 UNIQUE ("medium_id", "position") ); | 
| jbe/bsw@0 | 52 | 
| jbe/bsw@0 | 53 INSERT INTO "user" ("ident", "password", "name", "write_priv", "admin") | 
| jbe/bsw@0 | 54 VALUES ('admin', 'admin', 'Administrator', true, true); | 
| jbe/bsw@0 | 55 | 
| jbe/bsw@0 | 56 INSERT INTO "user" ("ident", "password", "name", "write_priv", "admin") | 
| jbe/bsw@0 | 57 VALUES ('user', 'User', 'User', true, false); | 
| jbe/bsw@0 | 58 | 
| jbe/bsw@0 | 59 INSERT INTO "user" ("ident", "password", "name", "write_priv", "admin") | 
| jbe/bsw@0 | 60 VALUES ('anon', 'anon', 'Anonymous', false, false); | 
| jbe/bsw@0 | 61 | 
| jbe/bsw@0 | 62 INSERT INTO "media_type" ("name", "description") VALUES ('CD', ''); | 
| jbe/bsw@0 | 63 INSERT INTO "media_type" ("name", "description") VALUES ('Tape', ''); | 
| jbe/bsw@0 | 64 | 
| jbe/bsw@0 | 65 INSERT INTO "genre" ("name", "description") VALUES ('Klassik', ''); | 
| jbe/bsw@0 | 66 INSERT INTO "genre" ("name", "description") VALUES ('Gospel', ''); | 
| jbe/bsw@0 | 67 INSERT INTO "genre" ("name", "description") VALUES ('Jazz', ''); | 
| jbe/bsw@0 | 68 INSERT INTO "genre" ("name", "description") VALUES ('Traditional', ''); | 
| jbe/bsw@0 | 69 INSERT INTO "genre" ("name", "description") VALUES ('Latin', ''); | 
| jbe/bsw@0 | 70 INSERT INTO "genre" ("name", "description") VALUES ('Blues', ''); | 
| jbe/bsw@0 | 71 INSERT INTO "genre" ("name", "description") VALUES ('Rhythm & blues', ''); | 
| jbe/bsw@0 | 72 INSERT INTO "genre" ("name", "description") VALUES ('Funk', ''); | 
| jbe/bsw@0 | 73 INSERT INTO "genre" ("name", "description") VALUES ('Rock', ''); | 
| jbe/bsw@0 | 74 INSERT INTO "genre" ("name", "description") VALUES ('Pop', ''); | 
| jbe/bsw@0 | 75 INSERT INTO "genre" ("name", "description") VALUES ('Country', ''); | 
| jbe/bsw@0 | 76 INSERT INTO "genre" ("name", "description") VALUES ('Electronic', ''); | 
| jbe/bsw@0 | 77 INSERT INTO "genre" ("name", "description") VALUES ('Ska / Reggea', ''); | 
| jbe/bsw@0 | 78 INSERT INTO "genre" ("name", "description") VALUES ('Hip hop / Rap', ''); | 
| jbe/bsw@0 | 79 |