]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - schemas/psql.sql
add rating schema
[SourceForge/phpwiki.git] / schemas / psql.sql
1 -- $Id: psql.sql,v 1.6 2004-04-06 20:00:11 rurban Exp $
2
3 \set QUIET
4
5
6 --================================================================
7 -- Prefix for table names.
8 --
9 -- You should set this to the same value you specify for
10 -- $DBParams['prefix'] in index.php.
11
12 \set prefix     ''
13
14 --================================================================
15 -- Which postgres user gets access to the tables?
16 --
17 -- You should set this to the name of the postgres
18 -- user who will be accessing the tables.
19 --
20 -- Commonly, connections from php are made under
21 -- the user name of 'nobody', 'apache' or 'www'.
22
23 \set httpd_user 'rurban'
24
25 --================================================================
26 --
27 -- Don't modify below this point unless you know what you are doing.
28 --
29 --================================================================
30
31 \set qprefix '\'' :prefix '\''
32 \set qhttp_user '\'' :httpd_user '\''
33 \echo Initializing PhpWiki tables with:
34 \echo '       prefix = ' :qprefix
35 \echo '   httpd_user = ' :qhttp_user
36 \echo
37 \echo 'Expect some \'Relation \'*\' does not exists\' errors unless you are'
38 \echo 'overwriting existing tables.'
39
40 \set page_tbl           :prefix 'page'
41 \set page_id            :prefix 'page_id'
42 \set page_nm            :prefix 'page_nm'
43
44 \set version_tbl        :prefix 'version'
45 \set vers_id            :prefix 'vers_id'
46 \set vers_mtime         :prefix 'vers_mtime'
47
48 \set recent_tbl         :prefix 'recent'
49 \set recent_id          :prefix 'recent_id'
50
51 \set nonempty_tbl       :prefix 'nonempty'
52 \set nonmt_id           :prefix 'nonmt_id'
53
54 \set link_tbl           :prefix 'link'
55 \set link_from          :prefix 'link_from'
56 \set link_to            :prefix 'link_to'
57
58 \set session_tbl        :prefix 'session'
59 \set sess_id            :prefix 'sess_id'
60 \set sess_date          :prefix 'sess_date'
61 \set sess_ip            :prefix 'sess_ip'
62
63 \set pref_tbl           :prefix 'pref'
64 \set pref_id            :prefix 'pref_id'
65
66 \echo Dropping :page_tbl
67 DROP TABLE :page_tbl;
68 \echo Creating :page_tbl
69 CREATE TABLE :page_tbl (
70         id              INT NOT NULL,
71         pagename        VARCHAR(100) NOT NULL,
72         hits            INT NOT NULL DEFAULT 0,
73         pagedata        TEXT NOT NULL DEFAULT ''
74 );
75 CREATE UNIQUE INDEX :page_id
76         ON :page_tbl (id);
77 CREATE UNIQUE INDEX :page_nm
78         ON :page_tbl (pagename);
79
80 \echo Dropping :version_tbl
81 DROP TABLE :version_tbl;
82 \echo Creating :version_tbl
83 CREATE TABLE :version_tbl (
84         id              INT NOT NULL,
85         version         INT NOT NULL,
86         mtime           INT NOT NULL,
87 --FIXME: should use boolean, but that returns 't' or 'f'. not 0 or 1. 
88         minor_edit      INT2 DEFAULT 0,
89         content         TEXT NOT NULL DEFAULT '',
90         versiondata     TEXT NOT NULL DEFAULT ''
91 );
92 CREATE UNIQUE INDEX :vers_id 
93         ON :version_tbl (id,version);
94 CREATE INDEX :vers_mtime
95         ON :version_tbl (mtime);
96
97 \echo Dropping :recent_tbl
98 DROP TABLE :recent_tbl;
99 \echo Creating :recent_tbl
100 CREATE TABLE :recent_tbl (
101         id              INT NOT NULL,
102         latestversion   INT,
103         latestmajor     INT,
104         latestminor     INT
105 );
106 CREATE UNIQUE INDEX :recent_id
107         ON :recent_tbl (id);
108
109
110 \echo Dropping :nonempty_tbl
111 DROP TABLE :nonempty_tbl;
112 \echo Creating :nonempty_tbl
113 CREATE TABLE :nonempty_tbl (
114         id              INT NOT NULL
115 );
116 CREATE UNIQUE INDEX :nonmt_id
117         ON :nonempty_tbl (id);
118
119 \echo Dropping :link_tbl
120 DROP TABLE :link_tbl;
121 \echo Creating :link_tbl
122 CREATE TABLE :link_tbl (
123         linkfrom        INT NOT NULL,
124         linkto          INT NOT NULL
125 );
126 CREATE INDEX :link_from ON :link_tbl (linkfrom);
127 CREATE INDEX :link_to   ON :link_tbl (linkto);
128
129 \echo Dropping :session_tbl
130 DROP TABLE :session_tbl;
131 \echo Creating :session_tbl
132 CREATE TABLE :session_tbl (
133         sess_id         CHAR(32) NOT NULL DEFAULT '',
134         sess_data       TEXT NOT NULL,
135         sess_date       INT
136         sess_ip         CHAR(15) NOT NULL,
137 );
138 CREATE UNIQUE INDEX :sess_id
139         ON :session_tbl (sess_id);
140 CREATE INDEX :sess_date ON :session_tbl (sess_date);
141 CREATE INDEX :sess_ip   ON :session_tbl (sess_ip);
142
143 -- Optional DB Auth and Prefs
144 -- For these tables below the default table prefix must be used 
145 -- in the DBAuthParam SQL statements also.
146
147 \echo Dropping :pref_tbl
148 DROP TABLE :pref_tbl;
149 \echo Creating :pref_tbl
150 CREATE TABLE :pref_tbl (
151         userid  CHAR(48) NOT NULL,
152         prefs   TEXT NULL DEFAULT '',
153 );
154 CREATE UNIQUE INDEX :pref_id
155         ON :pref_tbl (userid);
156
157 GRANT ALL ON :page_tbl          TO :httpd_user;
158 GRANT ALL ON :version_tbl       TO :httpd_user;
159 GRANT ALL ON :recent_tbl        TO :httpd_user;
160 GRANT ALL ON :nonempty_tbl      TO :httpd_user;
161 GRANT ALL ON :link_tbl          TO :httpd_user;
162 GRANT ALL ON :session_tbl       TO :httpd_user;
163 GRANT ALL ON :pref_tbl          TO :httpd_user;