]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - schemas/mysql-initialize.sql
Allow bold, italics or underlined for numbers
[SourceForge/phpwiki.git] / schemas / mysql-initialize.sql
1 CREATE TABLE page (
2         id              INT NOT NULL AUTO_INCREMENT,
3 -- for mysql => 4.1 define the charset here
4 -- this is esp. needed for mysql 4.1.0 up to 4.1.6. 
5 -- not yet confirmed, at least since 4.1.8 it's okay with binary.
6 --      pagename        VARCHAR(100) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
7 -- otherwise use the old syntax to do case-sensitive comparison
8         pagename        VARCHAR(100) BINARY NOT NULL,
9         hits            INT NOT NULL DEFAULT 0,
10         pagedata        MEDIUMTEXT NOT NULL DEFAULT '',
11 -- dont add that by hand, better let action=upgrade convert your data
12         cached_html     MEDIUMBLOB,
13         PRIMARY KEY (id),
14         UNIQUE KEY (pagename)
15 );
16
17 CREATE TABLE version (
18         id              INT NOT NULL,
19         version         INT NOT NULL,
20         mtime           INT NOT NULL,
21         minor_edit      TINYINT DEFAULT 0,
22         content         MEDIUMTEXT NOT NULL DEFAULT '',
23         versiondata     MEDIUMTEXT NOT NULL DEFAULT '',
24         PRIMARY KEY (id,version),
25         INDEX (mtime)
26 );
27
28 CREATE TABLE recent (
29         id              INT NOT NULL,
30         latestversion   INT,
31         latestmajor     INT,
32         latestminor     INT,
33         PRIMARY KEY (id)
34 );
35
36 CREATE TABLE nonempty (
37         id              INT NOT NULL,
38         PRIMARY KEY (id)
39 );
40
41 CREATE TABLE link (
42         linkfrom        INT NOT NULL,
43         linkto          INT NOT NULL,
44         relation        INT DEFAULT 0,
45         INDEX (linkfrom),
46         INDEX (linkto),
47         INDEX (relation)
48 );
49
50 CREATE TABLE session (
51         sess_id         CHAR(32) NOT NULL DEFAULT '',
52         sess_data       BLOB NOT NULL,
53         sess_date       INT UNSIGNED NOT NULL,
54         sess_ip         CHAR(40) NOT NULL,
55         PRIMARY KEY (sess_id),
56         INDEX (sess_date)
57 );
58
59 -- upgrade to 1.3.8: (see lib/upgrade.php)
60 -- ALTER TABLE session ADD sess_ip CHAR(15) NOT NULL;
61 -- CREATE INDEX sess_date on session (sess_date);
62 -- update to 1.3.10: (see lib/upgrade.php)
63 -- ALTER TABLE page CHANGE id id INT NOT NULL AUTO_INCREMENT;
64 -- update to 1.3.11: (see lib/upgrade.php)
65 -- ALTER TABLE page ADD cached_html MEDIUMBLOB;
66 -- ALTER TABLE session CHANGE sess_ip sess_ip CHAR(40) NOT NULL;
67
68 -- Optional DB Auth and Prefs
69 -- For these tables below the default table prefix must be used 
70 -- in the DBAuthParam SQL statements also.
71
72 CREATE TABLE pref (
73         userid  VARCHAR(48) BINARY NOT NULL UNIQUE,
74         prefs   TEXT NULL DEFAULT '',
75         passwd  VARCHAR(48) BINARY DEFAULT '',
76         groupname VARCHAR(48) BINARY DEFAULT 'users',
77         PRIMARY KEY (userid)
78 );
79
80 -- update to 1.3.12: (see lib/upgrade.php)
81
82 -- ALTER TABLE pref ADD passwd  CHAR(48) BINARY DEFAULT '';
83 -- ALTER TABLE pref ADD groupname CHAR(48) BINARY DEFAULT 'users';
84
85 -- deprecated since 1.3.12. only useful for separate databases.
86 -- better use the extra pref table where such users can be created easily 
87 -- without password.
88
89 -- CREATE TABLE user (
90 --      userid  CHAR(48) BINARY NOT NULL UNIQUE,
91 --      passwd  CHAR(48) BINARY DEFAULT '',
92 --      prefs   TEXT NULL DEFAULT '',
93 --      groupname CHAR(48) BINARY DEFAULT 'users',
94 --      PRIMARY KEY (userid)
95 -- );
96
97 -- Use the member table, if you need it for n:m user-group relations,
98 -- and adjust your DBAUTH_AUTH_ SQL statements.
99
100 CREATE TABLE member (
101         userid    CHAR(48) BINARY NOT NULL,
102         groupname CHAR(48) BINARY NOT NULL DEFAULT 'users',
103         INDEX (userid),
104         INDEX (groupname)
105 );
106
107 -- only if you plan to use the wikilens theme
108 CREATE TABLE rating (
109         dimension INT(4) NOT NULL,
110         raterpage INT(11) NOT NULL,
111         rateepage INT(11) NOT NULL,
112         ratingvalue FLOAT NOT NULL,
113         rateeversion INT(11) NOT NULL,
114         tstamp TIMESTAMP,
115 -- before:
116 --      tstamp TIMESTAMP(14) NOT NULL,
117 -- since mysql 5.1 better use:
118 --      tstamp TIMESTAMP DEFAULT 0,
119         PRIMARY KEY (dimension, raterpage, rateepage)
120 );
121 -- for empty dimensions use extra indices. see lib/wikilens/RatingsDb.php
122 CREATE INDEX rating_dimension ON rating (dimension);
123 CREATE INDEX rating_raterpage ON rating (raterpage);
124 CREATE INDEX rating_rateepage ON rating (rateepage);
125
126 -- if ACCESS_LOG_SQL > 0
127 -- only if you need fast log-analysis (spam prevention, recent referrers)
128 -- see http://www.outoforder.cc/projects/apache/mod_log_sql/docs-2.0/#id2756178
129 CREATE TABLE accesslog (
130         time_stamp    INT UNSIGNED,
131         remote_host   VARCHAR(100),
132         remote_user   VARCHAR(50),
133         request_method VARCHAR(10),
134         request_line  VARCHAR(255),
135         request_args  VARCHAR(255),
136         request_file  VARCHAR(255),
137         request_uri   VARCHAR(255),
138         request_time  CHAR(28),
139         status        SMALLINT UNSIGNED,
140         bytes_sent    SMALLINT UNSIGNED,
141         referer       VARCHAR(255), 
142         agent         VARCHAR(255),
143         request_duration FLOAT
144 );
145 CREATE INDEX log_time ON accesslog (time_stamp);
146 CREATE INDEX log_host ON accesslog (remote_host);
147 -- create extra indices on demand (usually referer. see plugin/AccessLogSql)
148
149 -- upgrade to 1.3.13: ( forgotten in lib/upgrade.php! )
150 -- ALTER TABLE accesslog CHANGE remote_host VARCHAR(100);
151
152 -- ALTER TABLE link ADD relation INT DEFAULT 0;
153 -- CREATE INDEX link_relation ON link (relation);