[0] | 1 | <?php |
---|
| 2 | # -- BEGIN LICENSE BLOCK --------------------------------------- |
---|
| 3 | # |
---|
| 4 | # This file is part of Dotclear 2. |
---|
| 5 | # |
---|
[270] | 6 | # Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear |
---|
[0] | 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->category |
---|
| 34 | ->cat_id ('bigint', 0, false) |
---|
| 35 | ->blog_id ('varchar', 32, false) |
---|
| 36 | ->cat_title ('varchar', 255, false) |
---|
| 37 | ->cat_url ('varchar', 255, false) |
---|
| 38 | ->cat_desc ('text', 0, true) |
---|
| 39 | ->cat_position ('integer', 0, true, 0) |
---|
| 40 | ->cat_lft ('integer', 0, true) |
---|
| 41 | ->cat_rgt ('integer', 0, true) |
---|
| 42 | |
---|
| 43 | ->primary('pk_category','cat_id') |
---|
| 44 | |
---|
| 45 | ->unique('uk_cat_url','cat_url','blog_id') |
---|
| 46 | ; |
---|
| 47 | |
---|
| 48 | $_s->session |
---|
| 49 | ->ses_id ('varchar', 40, false) |
---|
| 50 | ->ses_time ('integer', 0, false, 0) |
---|
| 51 | ->ses_start ('integer', 0, false, 0) |
---|
| 52 | ->ses_value ('text', 0, false) |
---|
| 53 | |
---|
| 54 | ->primary('pk_session','ses_id') |
---|
| 55 | ; |
---|
| 56 | |
---|
| 57 | $_s->setting |
---|
| 58 | ->setting_id ('varchar', 255, false) |
---|
| 59 | ->blog_id ('varchar', 32, true) |
---|
| 60 | ->setting_ns ('varchar', 32, false, "'system'") |
---|
| 61 | ->setting_value ('text', 0, true, null) |
---|
| 62 | ->setting_type ('varchar', 8, false, "'string'") |
---|
| 63 | ->setting_label ('text', 0, true) |
---|
| 64 | |
---|
| 65 | ->unique('uk_setting','setting_ns','setting_id','blog_id') |
---|
| 66 | ; |
---|
| 67 | |
---|
| 68 | $_s->user |
---|
| 69 | ->user_id ('varchar', 32, false) |
---|
| 70 | ->user_super ('smallint', 0, true) |
---|
| 71 | ->user_status ('smallint', 0, false, 1) |
---|
| 72 | ->user_pwd ('varchar', 40, false) |
---|
| 73 | ->user_change_pwd ('smallint', 0, false, 0) |
---|
| 74 | ->user_recover_key ('varchar', 32, true, null) |
---|
| 75 | ->user_name ('varchar', 255, true, null) |
---|
| 76 | ->user_firstname ('varchar', 255, true, null) |
---|
| 77 | ->user_displayname ('varchar', 255, true, null) |
---|
| 78 | ->user_email ('varchar', 255, true, null) |
---|
| 79 | ->user_url ('varchar', 255, true, null) |
---|
| 80 | ->user_desc ('text', 0, true) |
---|
| 81 | ->user_default_blog ('varchar', 32, true, null) |
---|
| 82 | ->user_options ('text', 0, true) |
---|
| 83 | ->user_lang ('varchar', 5, true, null) |
---|
| 84 | ->user_tz ('varchar', 128, false, "'UTC'") |
---|
| 85 | ->user_post_status ('smallint', 0, false, -2) |
---|
| 86 | ->user_creadt ('timestamp', 0, false, 'now()') |
---|
| 87 | ->user_upddt ('timestamp', 0, false, 'now()') |
---|
| 88 | |
---|
| 89 | ->primary('pk_user','user_id') |
---|
| 90 | ; |
---|
| 91 | |
---|
| 92 | $_s->permissions |
---|
| 93 | ->user_id ('varchar', 32, false) |
---|
| 94 | ->blog_id ('varchar', 32, false) |
---|
| 95 | ->permissions ('text', 0, true) |
---|
| 96 | |
---|
| 97 | ->primary('pk_permissions','user_id','blog_id') |
---|
| 98 | ; |
---|
| 99 | |
---|
| 100 | $_s->post |
---|
| 101 | ->post_id ('bigint', 0, false) |
---|
| 102 | ->blog_id ('varchar', 32, false) |
---|
| 103 | ->user_id ('varchar', 32, false) |
---|
| 104 | ->cat_id ('bigint', 0, true) |
---|
| 105 | ->post_dt ('timestamp', 0, false, 'now()') |
---|
| 106 | ->post_tz ('varchar', 128, false, "'UTC'") |
---|
| 107 | ->post_creadt ('timestamp', 0, false, 'now()') |
---|
| 108 | ->post_upddt ('timestamp', 0, false, 'now()') |
---|
| 109 | ->post_password ('varchar', 32, true, null) |
---|
| 110 | ->post_type ('varchar', 32, false, "'post'") |
---|
| 111 | ->post_format ('varchar', 32, false, "'xhtml'") |
---|
| 112 | ->post_url ('varchar', 255, false) |
---|
| 113 | ->post_lang ('varchar', 5, true, null) |
---|
| 114 | ->post_title ('varchar', 255, true, null) |
---|
| 115 | ->post_excerpt ('text', 0, true, null) |
---|
| 116 | ->post_excerpt_xhtml ('text', 0, true, null) |
---|
| 117 | ->post_content ('text', 0, true, null) |
---|
| 118 | ->post_content_xhtml ('text', 0, false) |
---|
| 119 | ->post_notes ('text', 0, true, null) |
---|
| 120 | ->post_meta ('text', 0, true, null) |
---|
| 121 | ->post_words ('text', 0, true, null) |
---|
| 122 | ->post_status ('smallint', 0, false, 0) |
---|
| 123 | ->post_selected ('smallint', 0, false, 0) |
---|
| 124 | ->post_position ('integer', 0, false, 0) |
---|
| 125 | ->post_open_comment ('smallint', 0, false, 0) |
---|
| 126 | ->post_open_tb ('smallint', 0, false, 0) |
---|
| 127 | ->nb_comment ('integer', 0, false, 0) |
---|
| 128 | ->nb_trackback ('integer', 0, false, 0) |
---|
| 129 | |
---|
| 130 | ->primary('pk_post','post_id') |
---|
| 131 | |
---|
| 132 | ->unique('uk_post_url','post_url','post_type','blog_id') |
---|
| 133 | ; |
---|
| 134 | |
---|
| 135 | $_s->media |
---|
| 136 | ->media_id ('bigint', 0, false) |
---|
| 137 | ->user_id ('varchar', 32, false) |
---|
| 138 | ->media_path ('varchar', 255, false) |
---|
| 139 | ->media_title ('varchar', 255, false) |
---|
| 140 | ->media_file ('varchar', 255, false) |
---|
| 141 | ->media_dir ('varchar', 255, false, "'.'") |
---|
| 142 | ->media_meta ('text', 0, true, null) |
---|
| 143 | ->media_dt ('timestamp', 0, false, 'now()') |
---|
| 144 | ->media_creadt ('timestamp', 0, false, 'now()') |
---|
| 145 | ->media_upddt ('timestamp', 0, false, 'now()') |
---|
| 146 | ->media_private ('smallint', 0, false, 0) |
---|
| 147 | |
---|
| 148 | ->primary('pk_media','media_id') |
---|
| 149 | ; |
---|
| 150 | |
---|
| 151 | $_s->post_media |
---|
| 152 | ->media_id ('bigint', 0, false) |
---|
| 153 | ->post_id ('bigint', 0, false) |
---|
[407] | 154 | ->link_type ('varchar', 32, false, "'attachment'") |
---|
[0] | 155 | |
---|
[407] | 156 | ->primary('pk_post_media','media_id','post_id','link_type') |
---|
[0] | 157 | ; |
---|
| 158 | |
---|
| 159 | $_s->log |
---|
| 160 | ->log_id ('bigint', 0, false) |
---|
| 161 | ->user_id ('varchar', 32, true) |
---|
| 162 | ->blog_id ('varchar', 32, true) |
---|
| 163 | ->log_table ('varchar', 255, false) |
---|
| 164 | ->log_dt ('timestamp', 0, false, 'now()') |
---|
| 165 | ->log_ip ('varchar', 39, false) |
---|
| 166 | ->log_msg ('varchar', 255, false) |
---|
| 167 | |
---|
| 168 | ->primary('pk_log','log_id') |
---|
| 169 | ; |
---|
| 170 | |
---|
| 171 | $_s->version |
---|
| 172 | ->module ('varchar', 64, false) |
---|
| 173 | ->version ('varchar', 32, false) |
---|
| 174 | |
---|
| 175 | ->primary('pk_version','module') |
---|
| 176 | ; |
---|
| 177 | |
---|
| 178 | $_s->ping |
---|
| 179 | ->post_id ('bigint', 0, false) |
---|
| 180 | ->ping_url ('varchar', 255, false) |
---|
| 181 | ->ping_dt ('timestamp', 0, false, 'now()') |
---|
| 182 | |
---|
| 183 | ->primary('pk_ping','post_id','ping_url') |
---|
| 184 | ; |
---|
| 185 | |
---|
| 186 | $_s->comment |
---|
| 187 | ->comment_id ('bigint', 0, false) |
---|
| 188 | ->post_id ('bigint', 0, false) |
---|
| 189 | ->comment_dt ('timestamp', 0, false, 'now()') |
---|
| 190 | ->comment_tz ('varchar', 128, false, "'UTC'") |
---|
| 191 | ->comment_upddt ('timestamp', 0, false, 'now()') |
---|
| 192 | ->comment_author ('varchar', 255, true, null) |
---|
| 193 | ->comment_email ('varchar', 255, true, null) |
---|
| 194 | ->comment_site ('varchar', 255, true, null) |
---|
| 195 | ->comment_content ('text', 0, true) |
---|
| 196 | ->comment_words ('text', 0, true, null) |
---|
| 197 | ->comment_ip ('varchar', 39, true, null) |
---|
| 198 | ->comment_status ('smallint', 0, true, 0) |
---|
| 199 | ->comment_spam_status ('varchar', 128, true, 0) |
---|
| 200 | ->comment_spam_filter ('varchar', 32, true, null) |
---|
| 201 | ->comment_trackback ('smallint', 0, false, 0) |
---|
| 202 | |
---|
| 203 | ->primary('pk_comment','comment_id') |
---|
| 204 | ; |
---|
| 205 | |
---|
| 206 | $_s->meta |
---|
| 207 | ->meta_id ('varchar', 255, false) |
---|
| 208 | ->meta_type ('varchar', 64, false) |
---|
| 209 | ->post_id ('bigint', 0, false) |
---|
| 210 | |
---|
| 211 | ->primary('pk_meta','meta_id','meta_type','post_id') |
---|
| 212 | ; |
---|
| 213 | |
---|
[3] | 214 | $_s->pref |
---|
| 215 | ->pref_id ('varchar', 255, false) |
---|
| 216 | ->user_id ('varchar', 32, true) |
---|
| 217 | ->pref_ws ('varchar', 32, false, "'system'") |
---|
| 218 | ->pref_value ('text', 0, true, null) |
---|
| 219 | ->pref_type ('varchar', 8, false, "'string'") |
---|
| 220 | ->pref_label ('text', 0, true) |
---|
| 221 | |
---|
| 222 | ->unique('uk_pref','pref_ws','pref_id','user_id') |
---|
| 223 | ; |
---|
| 224 | |
---|
[0] | 225 | /* References indexes |
---|
| 226 | -------------------------------------------------------- */ |
---|
| 227 | $_s->category->index ('idx_category_blog_id', 'btree', 'blog_id'); |
---|
| 228 | $_s->category->index ('idx_category_cat_lft_blog_id', 'btree', 'blog_id', 'cat_lft'); |
---|
| 229 | $_s->category->index ('idx_category_cat_rgt_blog_id', 'btree', 'blog_id', 'cat_rgt'); |
---|
| 230 | $_s->setting->index ('idx_setting_blog_id', 'btree', 'blog_id'); |
---|
| 231 | $_s->user->index ('idx_user_user_default_blog', 'btree', 'user_default_blog'); |
---|
| 232 | $_s->permissions->index ('idx_permissions_blog_id', 'btree', 'blog_id'); |
---|
| 233 | $_s->post->index ('idx_post_cat_id', 'btree', 'cat_id'); |
---|
| 234 | $_s->post->index ('idx_post_user_id', 'btree', 'user_id'); |
---|
| 235 | $_s->post->index ('idx_post_blog_id', 'btree', 'blog_id'); |
---|
| 236 | $_s->media->index ('idx_media_user_id', 'btree', 'user_id'); |
---|
| 237 | $_s->post_media->index ('idx_post_media_post_id', 'btree', 'post_id'); |
---|
[407] | 238 | $_s->post_media->index ('idx_post_media_media_id', 'btree', 'media_id'); |
---|
[0] | 239 | $_s->log->index ('idx_log_user_id', 'btree', 'user_id'); |
---|
| 240 | $_s->comment->index ('idx_comment_post_id', 'btree', 'post_id'); |
---|
| 241 | $_s->meta->index ('idx_meta_post_id', 'btree','post_id'); |
---|
| 242 | $_s->meta->index ('idx_meta_meta_type', 'btree','meta_type'); |
---|
[3] | 243 | $_s->pref->index ('idx_pref_user_id', 'btree', 'user_id'); |
---|
[0] | 244 | |
---|
| 245 | /* Performance indexes |
---|
| 246 | -------------------------------------------------------- */ |
---|
| 247 | $_s->comment->index ('idx_comment_post_id_dt_status', 'btree', 'post_id', 'comment_dt', 'comment_status'); |
---|
| 248 | $_s->post->index ('idx_post_post_dt', 'btree', 'post_dt'); |
---|
| 249 | $_s->post->index ('idx_post_post_dt_post_id', 'btree', 'post_dt','post_id'); |
---|
| 250 | $_s->post->index ('idx_blog_post_post_dt_post_id', 'btree', 'blog_id','post_dt','post_id'); |
---|
| 251 | $_s->post->index ('idx_blog_post_post_status', 'btree', 'blog_id','post_status'); |
---|
| 252 | $_s->blog->index ('idx_blog_blog_upddt', 'btree', 'blog_upddt'); |
---|
| 253 | $_s->user->index ('idx_user_user_super', 'btree', 'user_super'); |
---|
| 254 | |
---|
| 255 | /* Foreign keys |
---|
| 256 | -------------------------------------------------------- */ |
---|
| 257 | $_s->category->reference('fk_category_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 258 | $_s->setting->reference('fk_setting_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 259 | $_s->user->reference('fk_user_default_blog','user_default_blog','blog','blog_id','cascade','set null'); |
---|
| 260 | $_s->permissions->reference('fk_permissions_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 261 | $_s->permissions->reference('fk_permissions_user','user_id','user','user_id','cascade','cascade'); |
---|
| 262 | $_s->post->reference('fk_post_category','cat_id','category','cat_id','cascade','set null'); |
---|
| 263 | $_s->post->reference('fk_post_user','user_id','user','user_id','cascade','cascade'); |
---|
| 264 | $_s->post->reference('fk_post_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 265 | $_s->media->reference('fk_media_user','user_id','user','user_id','cascade','cascade'); |
---|
| 266 | $_s->post_media->reference('fk_media','media_id','media','media_id','cascade','cascade'); |
---|
| 267 | $_s->post_media->reference('fk_media_post','post_id','post','post_id','cascade','cascade'); |
---|
| 268 | $_s->ping->reference('fk_ping_post','post_id','post','post_id','cascade','cascade'); |
---|
| 269 | $_s->comment->reference('fk_comment_post','post_id','post','post_id','cascade','cascade'); |
---|
| 270 | $_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null'); |
---|
| 271 | $_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade'); |
---|
[3] | 272 | $_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade'); |
---|
[0] | 273 | |
---|
| 274 | /* PostgreSQL specific indexes |
---|
| 275 | -------------------------------------------------------- */ |
---|
| 276 | if ($_s->driver() == 'pgsql') |
---|
| 277 | { |
---|
| 278 | $_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)'); |
---|
| 279 | $_s->media->index ('idx_media_media_path', 'btree', 'media_path', 'media_dir'); |
---|
[3] | 280 | $_s->pref->index ('idx_pref_user_id_null', 'btree', '(user_id IS NULL)'); |
---|
[0] | 281 | } |
---|
| 282 | ?> |
---|