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