Parent Directory
|
Revision Log
This commit was manufactured by cvs2svn to create branch 'rel-2-4-dev'.
1 #!perl 2 ################################################################################ 3 # WeBWorK Online Homework Delivery System 4 # Copyright © 2000-2006 The WeBWorK Project, http://openwebwork.sf.net/ 5 # $CVSHeader: webwork2/conf/database.conf.dist,v 1.34 2007/03/02 23:19:55 sh002i Exp $ 6 # 7 # This program is free software; you can redistribute it and/or modify it under 8 # the terms of either: (a) the GNU General Public License as published by the 9 # Free Software Foundation; either version 2, or (at your option) any later 10 # version, or (b) the "Artistic License" which comes with this package. 11 # 12 # This program is distributed in the hope that it will be useful, but WITHOUT 13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 14 # FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the 15 # Artistic License for more details. 16 ################################################################################ 17 18 =head1 NAME 19 20 database.conf - define standard database layouts 21 22 =head1 SYNOPSIS 23 24 In global.conf: 25 26 include "conf/database.conf"; 27 *dbLayout = $dbLayouts{layoutName}; 28 29 =head1 DESCRIPTION 30 31 This file contains definitions for the commonly-used database layouts. Database 32 layouts consist of all the information necessary to describe how to access data 33 used by WeBWorK. For more information on the format of a database layout, 34 consult the documentation for the WeBWorK::DB module. 35 36 A database layout is selected from the list of possible layouts by adding a 37 line like the one below to the F<global.conf> or F<course.conf> file. 38 39 $dbLayoutName = "layoutName"; 40 *dbLayout = $dbLayouts{$dbLayoutName}; 41 42 =cut 43 44 %dbLayouts = (); # layouts are added to this hash below 45 46 =head2 THE SQL_SINGLE DATABASE LAYOUT 47 48 The C<sql_single> layout is similar to the C<sql> layout, excpet that it uses a 49 single database for all courses. This is accomplised by prefixing each table 50 name with the name of the course. The names and passwords of these accounts are 51 given as parameters to each table in the layout. 52 53 username the username to use when connecting to the database 54 password the password to use when connecting to the database 55 56 Be default, username is "webworkRead" and password is "". It is not recommended 57 that you use only a non-empty password to secure database access. Most RDBMSs 58 allow IP-based authorization as well. As the system administrator, IT IS YOUR 59 RESPONSIBILITY TO SECURE DATABASE ACCESS. 60 61 Don't confuse the account information above with the accounts of the users of a 62 course. This is a system-wide account which allow WeBWorK to talk to the 63 database server. 64 65 Other parameters that can be given are as follows: 66 67 tableOverride an alternate name to use when referrring to the table (used 68 when a table name is a resereved word) 69 fieldOverride a hash mapping WeBWorK field names to alternate names to use 70 when referring to those fields (used when one or more field 71 names are reserved words) 72 debug if true, SQL statments are printed before being executed 73 74 =cut 75 76 # params common to all tables 77 my %sqlParams = ( 78 username => $database_username, 79 password => $database_password, 80 debug => $database_debug, 81 ); 82 83 $dbLayouts{sql_single} = { 84 locations => { 85 record => "WeBWorK::DB::Record::Locations", 86 schema => "WeBWorK::DB::Schema::NewSQL::Std", 87 driver => "WeBWorK::DB::Driver::SQL", 88 source => $database_dsn, 89 params => { %sqlParams, 90 non_native => 1, 91 }, 92 }, 93 location_addresses => { 94 record => "WeBWorK::DB::Record::LocationAddresses", 95 schema => "WeBWorK::DB::Schema::NewSQL::Std", 96 driver => "WeBWorK::DB::Driver::SQL", 97 source => $database_dsn, 98 params => { %sqlParams, 99 non_native => 1, 100 }, 101 }, 102 password => { 103 record => "WeBWorK::DB::Record::Password", 104 schema => "WeBWorK::DB::Schema::NewSQL::Std", 105 driver => "WeBWorK::DB::Driver::SQL", 106 source => $database_dsn, 107 params => { %sqlParams, 108 tableOverride => "${courseName}_password", 109 }, 110 }, 111 permission => { 112 record => "WeBWorK::DB::Record::PermissionLevel", 113 schema => "WeBWorK::DB::Schema::NewSQL::Std", 114 driver => "WeBWorK::DB::Driver::SQL", 115 source => $database_dsn, 116 params => { %sqlParams, 117 tableOverride => "${courseName}_permission", 118 }, 119 }, 120 key => { 121 record => "WeBWorK::DB::Record::Key", 122 schema => "WeBWorK::DB::Schema::NewSQL::Std", 123 driver => "WeBWorK::DB::Driver::SQL", 124 source => $database_dsn, 125 params => { %sqlParams, 126 tableOverride => "${courseName}_key", 127 fieldOverride => { key => "key_not_a_keyword" }, 128 }, 129 }, 130 user => { 131 record => "WeBWorK::DB::Record::User", 132 schema => "WeBWorK::DB::Schema::NewSQL::Std", 133 driver => "WeBWorK::DB::Driver::SQL", 134 source => $database_dsn, 135 params => { %sqlParams, 136 tableOverride => "${courseName}_user", 137 }, 138 }, 139 set => { 140 record => "WeBWorK::DB::Record::Set", 141 schema => "WeBWorK::DB::Schema::NewSQL::Std", 142 driver => "WeBWorK::DB::Driver::SQL", 143 source => $database_dsn, 144 params => { %sqlParams, 145 tableOverride => "${courseName}_set" 146 }, 147 }, 148 set_user => { 149 record => "WeBWorK::DB::Record::UserSet", 150 schema => "WeBWorK::DB::Schema::NewSQL::NonVersioned", 151 driver => "WeBWorK::DB::Driver::SQL", 152 source => $database_dsn, 153 params => { %sqlParams, 154 tableOverride => "${courseName}_set_user" 155 }, 156 }, 157 set_merged => { 158 record => "WeBWorK::DB::Record::UserSet", 159 schema => "WeBWorK::DB::Schema::NewSQL::Merge", 160 driver => "WeBWorK::DB::Driver::SQL", 161 source => $database_dsn, 162 depend => [qw/set_user set/], 163 params => { %sqlParams, 164 non_native => 1, 165 merge => [qw/set_user set/], 166 }, 167 }, 168 set_version => { 169 record => "WeBWorK::DB::Record::SetVersion", 170 schema => "WeBWorK::DB::Schema::NewSQL::Versioned", 171 driver => "WeBWorK::DB::Driver::SQL", 172 source => $database_dsn, 173 params => { %sqlParams, 174 non_native => 1, 175 tableOverride => "${courseName}_set_user", 176 }, 177 }, 178 set_version_merged => { 179 record => "WeBWorK::DB::Record::SetVersion", 180 schema => "WeBWorK::DB::Schema::NewSQL::Merge", 181 driver => "WeBWorK::DB::Driver::SQL", 182 source => $database_dsn, 183 depend => [qw/set_version set_user set/], 184 params => { %sqlParams, 185 non_native => 1, 186 merge => [qw/set_version set_user set/], 187 }, 188 }, 189 set_locations => { 190 record => "WeBWorK::DB::Record::SetLocations", 191 schema => "WeBWorK::DB::Schema::NewSQL::Std", 192 driver => "WeBWorK::DB::Driver::SQL", 193 source => $database_dsn, 194 params => { %sqlParams, 195 tableOverride => "${courseName}_set_locations" 196 }, 197 }, 198 set_locations_user => { 199 record => "WeBWorK::DB::Record::UserSetLocations", 200 schema => "WeBWorK::DB::Schema::NewSQL::Std", 201 driver => "WeBWorK::DB::Driver::SQL", 202 source => $database_dsn, 203 params => { %sqlParams, 204 tableOverride => "${courseName}_set_locations_user" 205 }, 206 }, 207 problem => { 208 record => "WeBWorK::DB::Record::Problem", 209 schema => "WeBWorK::DB::Schema::NewSQL::Std", 210 driver => "WeBWorK::DB::Driver::SQL", 211 source => $database_dsn, 212 params => { %sqlParams, 213 tableOverride => "${courseName}_problem" 214 }, 215 }, 216 problem_user => { 217 record => "WeBWorK::DB::Record::UserProblem", 218 schema => "WeBWorK::DB::Schema::NewSQL::NonVersioned", 219 driver => "WeBWorK::DB::Driver::SQL", 220 source => $database_dsn, 221 params => { %sqlParams, 222 tableOverride => "${courseName}_problem_user" 223 }, 224 }, 225 problem_merged => { 226 record => "WeBWorK::DB::Record::UserProblem", 227 schema => "WeBWorK::DB::Schema::NewSQL::Merge", 228 driver => "WeBWorK::DB::Driver::SQL", 229 source => $database_dsn, 230 depend => [qw/problem_user problem/], 231 params => { %sqlParams, 232 non_native => 1, 233 merge => [qw/problem_user problem/], 234 }, 235 }, 236 problem_version => { 237 record => "WeBWorK::DB::Record::ProblemVersion", 238 schema => "WeBWorK::DB::Schema::NewSQL::Versioned", 239 driver => "WeBWorK::DB::Driver::SQL", 240 source => $database_dsn, 241 params => { %sqlParams, 242 non_native => 1, 243 tableOverride => "${courseName}_problem_user", 244 }, 245 }, 246 problem_version_merged => { 247 record => "WeBWorK::DB::Record::ProblemVersion", 248 schema => "WeBWorK::DB::Schema::NewSQL::Merge", 249 driver => "WeBWorK::DB::Driver::SQL", 250 source => $database_dsn, 251 depend => [qw/problem_version problem_user problem/], 252 params => { %sqlParams, 253 non_native => 1, 254 merge => [qw/problem_version problem_user problem/], 255 }, 256 }, 257 }; 258 259 =head2 THE SQL_MOODLE DATABASE LAYOUT 260 261 The C<sql_moodle> layout is similar to the C<sql_single> layout, except it uses 262 a Moodle database for user information and authentication. 263 264 =cut 265 266 # params used by moodle-backed tables 267 my %moodleParams = ( 268 non_native => 1, 269 username => $moodle_username, 270 password => $moodle_password, 271 debug => $database_debug, 272 tablePrefix => $moodle_table_prefix, 273 courseName => $courseName, 274 moodle17 => $moodle17, 275 ); 276 277 $dbLayouts{sql_moodle} = { 278 # start with sql_single table definitions 279 %{$dbLayouts{sql_single}}, 280 281 # then override user, password, and permission tables 282 # use the same record classes as sql_single 283 user => { 284 record => "WeBWorK::DB::Record::User", 285 schema => "WeBWorK::DB::Schema::NewSQL::Moodle::User", 286 driver => "WeBWorK::DB::Driver::SQL", 287 source => $moodle_dsn, 288 params => { %moodleParams, 289 statusDeletedAbbrevs => $statuses{Drop}{abbrevs}, 290 statusDeletedDefault => $statuses{Drop}{abbrevs}[0], 291 statusNotDeletedAbbrevs => $statuses{Enrolled}{abbrevs}, 292 statusNotDeletedDefault => $statuses{Enrolled}{abbrevs}[0], 293 #sectionPrefix => "SEC_", # not implemented 294 #recitationPrefix => "", # not implemented 295 }, 296 }, 297 password => { 298 record => "WeBWorK::DB::Record::Password", 299 schema => "WeBWorK::DB::Schema::NewSQL::Moodle::PasswordPermission", 300 driver => "WeBWorK::DB::Driver::SQL", 301 source => $moodle_dsn, 302 params => { %moodleParams, 303 guestsPermissionLevel => -5, 304 studentsPermissionLevel => 0, 305 teachersPermissionLevel => 10, 306 adminsPermissionLevel => 10, 307 }, 308 }, 309 permission => { 310 record => "WeBWorK::DB::Record::PermissionLevel", 311 schema => "WeBWorK::DB::Schema::NewSQL::Moodle::PasswordPermission", 312 driver => "WeBWorK::DB::Driver::SQL", 313 source => $moodle_dsn, 314 params => { %moodleParams, 315 guestsPermissionLevel => -5, 316 studentsPermissionLevel => 0, 317 teachersPermissionLevel => 10, 318 adminsPermissionLevel => 10, 319 }, 320 }, 321 }; 322 323 =head1 DATABASE LAYOUT METADATA 324 325 =over 326 327 =item @dbLayout_order 328 329 Database layouts listed in this array will be displayed first, in the order 330 specified, wherever database layouts are listed. (For example, in the "Add 331 Course" tool.) Other layouts are listed after these. 332 333 =cut 334 335 @dbLayout_order = qw/sql_single sql_moodle/; 336 337 =item %dbLayout_descr 338 339 Hash mapping database layout names to textual descriptions. 340 341 =cut 342 343 %dbLayout_descr = ( 344 sql_single => "Uses a single SQL database to record WeBWorK data for all courses using this layout. This is the recommended layout for new courses.", 345 sql_moodle => "Simiar to sql_single, but uses a Moodle database for user, password, and permission information. This layout should be used for courses used with wwmoodle.", 346 ); 347 348 =back 349 350 =cut
| aubreyja at gmail dot com | ViewVC Help |
| Powered by ViewVC 1.0.9 |