1 | <?php |
---|
2 | # -- BEGIN LICENSE BLOCK --------------------------------------- |
---|
3 | # |
---|
4 | # This file is part of Dotclear 2. |
---|
5 | # |
---|
6 | # Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear |
---|
7 | # Licensed under the GPL version 2.0 license. |
---|
8 | # See LICENSE file or |
---|
9 | # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
---|
10 | # |
---|
11 | # -- END LICENSE BLOCK ----------------------------------------- |
---|
12 | if (!defined('DC_RC_PATH')) { return; } |
---|
13 | |
---|
14 | if (!($_s instanceof dbStruct)) { |
---|
15 | throw new Exception('No valid schema object'); |
---|
16 | } |
---|
17 | |
---|
18 | /* Tables |
---|
19 | -------------------------------------------------------- */ |
---|
20 | $_s->blog |
---|
21 | ->blog_id ('varchar', 32, false) |
---|
22 | ->blog_uid ('varchar', 32, false) |
---|
23 | ->blog_creadt ('timestamp', 0, false, 'now()') |
---|
24 | ->blog_upddt ('timestamp', 0, false, 'now()') |
---|
25 | ->blog_url ('varchar', 255, false) |
---|
26 | ->blog_name ('varchar', 255, false) |
---|
27 | ->blog_desc ('text', 0, true) |
---|
28 | ->blog_status ('smallint', 0, false, 1) |
---|
29 | |
---|
30 | ->primary('pk_blog','blog_id') |
---|
31 | ; |
---|
32 | |
---|
33 | $_s->session |
---|
34 | ->ses_id ('varchar', 40, false) |
---|
35 | ->ses_time ('integer', 0, false, 0) |
---|
36 | ->ses_start ('integer', 0, false, 0) |
---|
37 | ->ses_value ('text', 0, false) |
---|
38 | |
---|
39 | ->primary('pk_session','ses_id') |
---|
40 | ; |
---|
41 | |
---|
42 | $_s->setting |
---|
43 | ->setting_id ('varchar', 255, false) |
---|
44 | ->blog_id ('varchar', 32, true) |
---|
45 | ->setting_ns ('varchar', 32, false, "'system'") |
---|
46 | ->setting_value ('text', 0, true, null) |
---|
47 | ->setting_type ('varchar', 8, false, "'string'") |
---|
48 | ->setting_label ('text', 0, true) |
---|
49 | |
---|
50 | ->unique('uk_setting','setting_ns','setting_id','blog_id') |
---|
51 | ; |
---|
52 | |
---|
53 | $_s->user |
---|
54 | ->user_id ('varchar', 32, false) |
---|
55 | ->user_super ('smallint', 0, true) |
---|
56 | ->user_status ('smallint', 0, false, 1) |
---|
57 | ->user_pwd ('varchar', 40, false) |
---|
58 | ->user_change_pwd ('smallint', 0, false, 0) |
---|
59 | ->user_recover_key ('varchar', 32, true, null) |
---|
60 | ->user_name ('varchar', 255, true, null) |
---|
61 | ->user_firstname ('varchar', 255, true, null) |
---|
62 | ->user_displayname ('varchar', 255, true, null) |
---|
63 | ->user_email ('varchar', 255, true, null) |
---|
64 | ->user_url ('varchar', 255, true, null) |
---|
65 | ->user_desc ('text', 0, true) |
---|
66 | ->user_default_blog ('varchar', 32, true, null) |
---|
67 | ->user_options ('text', 0, true) |
---|
68 | ->user_lang ('varchar', 5, true, null) |
---|
69 | ->user_tz ('varchar', 128, false, "'UTC'") |
---|
70 | ->user_post_status ('smallint', 0, false, -2) |
---|
71 | ->user_creadt ('timestamp', 0, false, 'now()') |
---|
72 | ->user_upddt ('timestamp', 0, false, 'now()') |
---|
73 | |
---|
74 | ->primary('pk_user','user_id') |
---|
75 | ; |
---|
76 | |
---|
77 | $_s->permissions |
---|
78 | ->user_id ('varchar', 32, false) |
---|
79 | ->blog_id ('varchar', 32, false) |
---|
80 | ->permissions ('text', 0, true) |
---|
81 | |
---|
82 | ->primary('pk_permissions','user_id','blog_id') |
---|
83 | ; |
---|
84 | |
---|
85 | $_s->post |
---|
86 | ->post_id ('bigint', 0, false) |
---|
87 | ->blog_id ('varchar', 32, false) |
---|
88 | ->user_id ('varchar', 32, false) |
---|
89 | ->post_dt ('timestamp', 0, false, 'now()') |
---|
90 | ->post_tz ('varchar', 128, false, "'UTC'") |
---|
91 | ->post_creadt ('timestamp', 0, false, 'now()') |
---|
92 | ->post_upddt ('timestamp', 0, false, 'now()') |
---|
93 | ->post_type ('varchar', 32, false, "'post'") |
---|
94 | ->post_format ('varchar', 32, false, "'xhtml'") |
---|
95 | ->post_url ('varchar', 255, false) |
---|
96 | ->post_lang ('varchar', 5, true, null) |
---|
97 | ->post_title ('varchar', 255, true, null) |
---|
98 | ->post_excerpt ('text', 0, true, null) |
---|
99 | ->post_excerpt_xhtml ('text', 0, true, null) |
---|
100 | ->post_content ('text', 0, true, null) |
---|
101 | ->post_content_xhtml ('text', 0, false) |
---|
102 | ->post_notes ('text', 0, true, null) |
---|
103 | ->post_meta ('text', 0, true, null) |
---|
104 | ->post_words ('text', 0, true, null) |
---|
105 | ->post_status ('smallint', 0, false, 0) |
---|
106 | ->post_selected ('smallint', 0, false, 0) |
---|
107 | ->post_position ('integer', 0, false, 0) |
---|
108 | ->primary('pk_post','post_id') |
---|
109 | |
---|
110 | ->unique('uk_post_url','post_url','post_type','blog_id') |
---|
111 | ; |
---|
112 | |
---|
113 | |
---|
114 | $_s->log |
---|
115 | ->log_id ('bigint', 0, false) |
---|
116 | ->user_id ('varchar', 32, true) |
---|
117 | ->blog_id ('varchar', 32, true) |
---|
118 | ->log_table ('varchar', 255, false) |
---|
119 | ->log_dt ('timestamp', 0, false, 'now()') |
---|
120 | ->log_ip ('varchar', 39, false) |
---|
121 | ->log_msg ('text', 0, true, null) |
---|
122 | |
---|
123 | ->primary('pk_log','log_id') |
---|
124 | ; |
---|
125 | |
---|
126 | $_s->version |
---|
127 | ->module ('varchar', 64, false) |
---|
128 | ->version ('varchar', 32, false) |
---|
129 | |
---|
130 | ->primary('pk_version','module') |
---|
131 | ; |
---|
132 | |
---|
133 | $_s->meta |
---|
134 | ->meta_id ('varchar', 255, false) |
---|
135 | ->meta_type ('varchar', 64, false) |
---|
136 | ->post_id ('bigint', 0, false) |
---|
137 | |
---|
138 | ->primary('pk_meta','meta_id','meta_type','post_id') |
---|
139 | ; |
---|
140 | |
---|
141 | $_s->pref |
---|
142 | ->pref_id ('varchar', 255, false) |
---|
143 | ->user_id ('varchar', 32, true) |
---|
144 | ->pref_ws ('varchar', 32, false, "'system'") |
---|
145 | ->pref_value ('text', 0, true, null) |
---|
146 | ->pref_type ('varchar', 8, false, "'string'") |
---|
147 | ->pref_label ('text', 0, true) |
---|
148 | |
---|
149 | ->unique('uk_pref','pref_ws','pref_id','user_id') |
---|
150 | ; |
---|
151 | |
---|
152 | /* References indexes |
---|
153 | -------------------------------------------------------- */ |
---|
154 | $_s->setting->index ('idx_setting_blog_id', 'btree', 'blog_id'); |
---|
155 | $_s->user->index ('idx_user_user_default_blog', 'btree', 'user_default_blog'); |
---|
156 | $_s->permissions->index ('idx_permissions_blog_id', 'btree', 'blog_id'); |
---|
157 | $_s->post->index ('idx_post_user_id', 'btree', 'user_id'); |
---|
158 | $_s->post->index ('idx_post_blog_id', 'btree', 'blog_id'); |
---|
159 | $_s->log->index ('idx_log_user_id', 'btree', 'user_id'); |
---|
160 | $_s->meta->index ('idx_meta_post_id', 'btree','post_id'); |
---|
161 | $_s->meta->index ('idx_meta_meta_type', 'btree','meta_type'); |
---|
162 | $_s->pref->index ('idx_pref_user_id', 'btree', 'user_id'); |
---|
163 | |
---|
164 | /* Performance indexes |
---|
165 | -------------------------------------------------------- */ |
---|
166 | $_s->post->index ('idx_post_post_dt', 'btree', 'post_dt'); |
---|
167 | $_s->post->index ('idx_post_post_dt_post_id', 'btree', 'post_dt','post_id'); |
---|
168 | $_s->post->index ('idx_blog_post_post_dt_post_id', 'btree', 'blog_id','post_dt','post_id'); |
---|
169 | $_s->post->index ('idx_blog_post_post_status', 'btree', 'blog_id','post_status'); |
---|
170 | $_s->blog->index ('idx_blog_blog_upddt', 'btree', 'blog_upddt'); |
---|
171 | $_s->user->index ('idx_user_user_super', 'btree', 'user_super'); |
---|
172 | |
---|
173 | /* Foreign keys |
---|
174 | -------------------------------------------------------- */ |
---|
175 | $_s->setting->reference('fk_setting_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
176 | $_s->user->reference('fk_user_default_blog','user_default_blog','blog','blog_id','cascade','set null'); |
---|
177 | $_s->permissions->reference('fk_permissions_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
178 | $_s->permissions->reference('fk_permissions_user','user_id','user','user_id','cascade','cascade'); |
---|
179 | $_s->post->reference('fk_post_user','user_id','user','user_id','cascade','cascade'); |
---|
180 | $_s->post->reference('fk_post_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
181 | $_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null'); |
---|
182 | $_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade'); |
---|
183 | $_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade'); |
---|
184 | |
---|
185 | /* PostgreSQL specific indexes |
---|
186 | -------------------------------------------------------- */ |
---|
187 | if ($_s->driver() == 'pgsql') |
---|
188 | { |
---|
189 | $_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)'); |
---|
190 | $_s->pref->index ('idx_pref_user_id_null', 'btree', '(user_id IS NULL)'); |
---|
191 | } |
---|
192 | ?> |
---|