[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->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_password ('varchar', 32, true, null) |
---|
| 94 | ->post_type ('varchar', 32, false, "'post'") |
---|
| 95 | ->post_format ('varchar', 32, false, "'xhtml'") |
---|
| 96 | ->post_url ('varchar', 255, false) |
---|
| 97 | ->post_lang ('varchar', 5, true, null) |
---|
| 98 | ->post_title ('varchar', 255, true, null) |
---|
| 99 | ->post_excerpt ('text', 0, true, null) |
---|
| 100 | ->post_excerpt_xhtml ('text', 0, true, null) |
---|
| 101 | ->post_content ('text', 0, true, null) |
---|
| 102 | ->post_content_xhtml ('text', 0, false) |
---|
| 103 | ->post_notes ('text', 0, true, null) |
---|
| 104 | ->post_meta ('text', 0, true, null) |
---|
| 105 | ->post_words ('text', 0, true, null) |
---|
| 106 | ->post_status ('smallint', 0, false, 0) |
---|
| 107 | ->post_selected ('smallint', 0, false, 0) |
---|
| 108 | ->post_position ('integer', 0, false, 0) |
---|
| 109 | ->primary('pk_post','post_id') |
---|
| 110 | |
---|
| 111 | ->unique('uk_post_url','post_url','post_type','blog_id') |
---|
| 112 | ; |
---|
| 113 | |
---|
| 114 | |
---|
| 115 | $_s->log |
---|
| 116 | ->log_id ('bigint', 0, false) |
---|
| 117 | ->user_id ('varchar', 32, true) |
---|
| 118 | ->blog_id ('varchar', 32, true) |
---|
| 119 | ->log_table ('varchar', 255, false) |
---|
| 120 | ->log_dt ('timestamp', 0, false, 'now()') |
---|
| 121 | ->log_ip ('varchar', 39, false) |
---|
| 122 | ->log_msg ('varchar', 255, false) |
---|
| 123 | |
---|
| 124 | ->primary('pk_log','log_id') |
---|
| 125 | ; |
---|
| 126 | |
---|
| 127 | $_s->version |
---|
| 128 | ->module ('varchar', 64, false) |
---|
| 129 | ->version ('varchar', 32, false) |
---|
| 130 | |
---|
| 131 | ->primary('pk_version','module') |
---|
| 132 | ; |
---|
| 133 | |
---|
| 134 | $_s->meta |
---|
| 135 | ->meta_id ('varchar', 255, false) |
---|
| 136 | ->meta_type ('varchar', 64, false) |
---|
| 137 | ->post_id ('bigint', 0, false) |
---|
| 138 | |
---|
| 139 | ->primary('pk_meta','meta_id','meta_type','post_id') |
---|
| 140 | ; |
---|
| 141 | |
---|
[3] | 142 | $_s->pref |
---|
| 143 | ->pref_id ('varchar', 255, false) |
---|
| 144 | ->user_id ('varchar', 32, true) |
---|
| 145 | ->pref_ws ('varchar', 32, false, "'system'") |
---|
| 146 | ->pref_value ('text', 0, true, null) |
---|
| 147 | ->pref_type ('varchar', 8, false, "'string'") |
---|
| 148 | ->pref_label ('text', 0, true) |
---|
| 149 | |
---|
| 150 | ->unique('uk_pref','pref_ws','pref_id','user_id') |
---|
| 151 | ; |
---|
| 152 | |
---|
[0] | 153 | /* References indexes |
---|
| 154 | -------------------------------------------------------- */ |
---|
| 155 | $_s->setting->index ('idx_setting_blog_id', 'btree', 'blog_id'); |
---|
| 156 | $_s->user->index ('idx_user_user_default_blog', 'btree', 'user_default_blog'); |
---|
| 157 | $_s->permissions->index ('idx_permissions_blog_id', 'btree', 'blog_id'); |
---|
| 158 | $_s->post->index ('idx_post_user_id', 'btree', 'user_id'); |
---|
| 159 | $_s->post->index ('idx_post_blog_id', 'btree', 'blog_id'); |
---|
| 160 | $_s->log->index ('idx_log_user_id', 'btree', 'user_id'); |
---|
| 161 | $_s->meta->index ('idx_meta_post_id', 'btree','post_id'); |
---|
| 162 | $_s->meta->index ('idx_meta_meta_type', 'btree','meta_type'); |
---|
[3] | 163 | $_s->pref->index ('idx_pref_user_id', 'btree', 'user_id'); |
---|
[0] | 164 | |
---|
| 165 | /* Performance indexes |
---|
| 166 | -------------------------------------------------------- */ |
---|
| 167 | $_s->post->index ('idx_post_post_dt', 'btree', 'post_dt'); |
---|
| 168 | $_s->post->index ('idx_post_post_dt_post_id', 'btree', 'post_dt','post_id'); |
---|
| 169 | $_s->post->index ('idx_blog_post_post_dt_post_id', 'btree', 'blog_id','post_dt','post_id'); |
---|
| 170 | $_s->post->index ('idx_blog_post_post_status', 'btree', 'blog_id','post_status'); |
---|
| 171 | $_s->blog->index ('idx_blog_blog_upddt', 'btree', 'blog_upddt'); |
---|
| 172 | $_s->user->index ('idx_user_user_super', 'btree', 'user_super'); |
---|
| 173 | |
---|
| 174 | /* Foreign keys |
---|
| 175 | -------------------------------------------------------- */ |
---|
| 176 | $_s->setting->reference('fk_setting_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 177 | $_s->user->reference('fk_user_default_blog','user_default_blog','blog','blog_id','cascade','set null'); |
---|
| 178 | $_s->permissions->reference('fk_permissions_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 179 | $_s->permissions->reference('fk_permissions_user','user_id','user','user_id','cascade','cascade'); |
---|
| 180 | $_s->post->reference('fk_post_user','user_id','user','user_id','cascade','cascade'); |
---|
| 181 | $_s->post->reference('fk_post_blog','blog_id','blog','blog_id','cascade','cascade'); |
---|
| 182 | $_s->log->reference('fk_log_blog','blog_id','blog','blog_id','cascade','set null'); |
---|
| 183 | $_s->meta->reference('fk_meta_post','post_id','post','post_id','cascade','cascade'); |
---|
[3] | 184 | $_s->pref->reference('fk_pref_user','user_id','user','user_id','cascade','cascade'); |
---|
[0] | 185 | |
---|
| 186 | /* PostgreSQL specific indexes |
---|
| 187 | -------------------------------------------------------- */ |
---|
| 188 | if ($_s->driver() == 'pgsql') |
---|
| 189 | { |
---|
| 190 | $_s->setting->index ('idx_setting_blog_id_null', 'btree', '(blog_id IS NULL)'); |
---|
[3] | 191 | $_s->pref->index ('idx_pref_user_id_null', 'btree', '(user_id IS NULL)'); |
---|
[0] | 192 | } |
---|
| 193 | ?> |
---|