[system] / trunk / webwork-modperl / conf / database.conf.dist Repository:
ViewVC logotype

Annotation of /trunk/webwork-modperl/conf/database.conf.dist

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4074 - (view) (download)

1 : sh002i 1696 #!perl
2 :     ################################################################################
3 :     # WeBWorK Online Homework Delivery System
4 : sh002i 3973 # Copyright © 2000-2006 The WeBWorK Project, http://openwebwork.sf.net/
5 : sh002i 4074 # $CVSHeader: webwork2/conf/database.conf.dist,v 1.17 2006/05/16 18:58:04 sh002i Exp $
6 : sh002i 1696 #
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 stantad 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 : sh002i 2310 $dbLayoutName = "layoutName";
40 :     *dbLayout = $dbLayouts{$dbLayoutName};
41 : sh002i 1696
42 :     =cut
43 :    
44 :     %dbLayouts = (); # layouts are added to this hash below
45 :    
46 : sh002i 3822 =head1 THE SQL_SINGLE DATABASE LAYOUT
47 : sh002i 2830
48 : sh002i 3822 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 : sh002i 2830
53 : sh002i 1696 usernameRO the name of the read-only account
54 :     usernameRW the name of the read-write account
55 :     passwordRO the password for the read-only account
56 :     passwordRW the password for the read-write account
57 :    
58 : sh002i 1698 Be default, the name of the read-only account is "webworkRead", and the name of
59 :     the read-write account is "webworkWrite". There are no passwords by default.
60 :     It is not recommended that you use only passwords to secure database access.
61 :     Most RDBMSs allow IP-based authorization as well. As the system administrator,
62 :     IT IS YOUR RESPONSIBILITY TO SECURE DATABASE ACCESS.
63 :    
64 : sh002i 1696 Don't confuse the accounts above with the accounts of the users of a course.
65 :     These are system-wide accounts which allow WeBWorK to talk to the database
66 :     server.
67 :    
68 :     Other parameters that can be given are as follows:
69 :    
70 :     tableOverride an alternate name to use when referrring to the table (used
71 :     when a table name is a resereved word)
72 :     fieldOverride a hash mapping WeBWorK field names to alternate names to use
73 :     when referring to those fields (used when one or more field
74 :     names are reserved words)
75 :     debug if true, SQL statments are printed before being executed
76 :    
77 :     =cut
78 :    
79 : sh002i 4072 # params common to all tables
80 : sh002i 1696 my %sqlParams = (
81 : sh002i 4072 usernameRO => $database_username,
82 :     passwordRO => $database_password,
83 :     usernameRW => $database_username,
84 :     passwordRW => $database_password,
85 :     debug => $database_debug,
86 : sh002i 1696 );
87 :    
88 : sh002i 2689 $dbLayouts{sql_single} = {
89 :     password => {
90 :     record => "WeBWorK::DB::Record::Password",
91 :     schema => "WeBWorK::DB::Schema::SQL",
92 :     driver => "WeBWorK::DB::Driver::SQL",
93 : sh002i 4072 source => $database_dsn,
94 : sh002i 2689 params => { %sqlParams,
95 :     tableOverride => "${courseName}_password",
96 :     },
97 :     },
98 :     permission => {
99 :     record => "WeBWorK::DB::Record::PermissionLevel",
100 :     schema => "WeBWorK::DB::Schema::SQL",
101 :     driver => "WeBWorK::DB::Driver::SQL",
102 : sh002i 4072 source => $database_dsn,
103 : sh002i 2689 params => { %sqlParams,
104 :     tableOverride => "${courseName}_permission",
105 :     },
106 :     },
107 :     key => {
108 :     record => "WeBWorK::DB::Record::Key",
109 :     schema => "WeBWorK::DB::Schema::SQL",
110 :     driver => "WeBWorK::DB::Driver::SQL",
111 : sh002i 4072 source => $database_dsn,
112 : sh002i 2689 params => { %sqlParams,
113 :     tableOverride => "${courseName}_key",
114 :     fieldOverride => { key => "key_not_a_keyword" },
115 :     },
116 :     },
117 :     user => {
118 :     record => "WeBWorK::DB::Record::User",
119 :     schema => "WeBWorK::DB::Schema::SQL",
120 :     driver => "WeBWorK::DB::Driver::SQL",
121 : sh002i 4072 source => $database_dsn,
122 : sh002i 2689 params => { %sqlParams,
123 :     tableOverride => "${courseName}_user",
124 :     },
125 :     },
126 :     set => {
127 :     record => "WeBWorK::DB::Record::Set",
128 :     schema => "WeBWorK::DB::Schema::SQL",
129 :     driver => "WeBWorK::DB::Driver::SQL",
130 : sh002i 4072 source => $database_dsn,
131 : sh002i 2689 params => { %sqlParams,
132 :     tableOverride => "${courseName}_set"
133 :     },
134 :     },
135 :     set_user => {
136 :     record => "WeBWorK::DB::Record::UserSet",
137 :     schema => "WeBWorK::DB::Schema::SQL",
138 :     driver => "WeBWorK::DB::Driver::SQL",
139 : sh002i 4072 source => $database_dsn,
140 : sh002i 2689 params => { %sqlParams,
141 :     tableOverride => "${courseName}_set_user"
142 :     },
143 :     },
144 :     problem => {
145 :     record => "WeBWorK::DB::Record::Problem",
146 :     schema => "WeBWorK::DB::Schema::SQL",
147 :     driver => "WeBWorK::DB::Driver::SQL",
148 : sh002i 4072 source => $database_dsn,
149 : sh002i 2689 params => { %sqlParams,
150 :     tableOverride => "${courseName}_problem"
151 :     },
152 :     },
153 :     problem_user => {
154 :     record => "WeBWorK::DB::Record::UserProblem",
155 :     schema => "WeBWorK::DB::Schema::SQL",
156 :     driver => "WeBWorK::DB::Driver::SQL",
157 : sh002i 4072 source => $database_dsn,
158 : sh002i 2689 params => { %sqlParams,
159 :     tableOverride => "${courseName}_problem_user"
160 :     },
161 :     },
162 :     };
163 : sh002i 4074
164 :     =head1 THE SQL_MOODLE DATABASE LAYOUT
165 :    
166 :     The C<sql_moodle> layout is similar to the C<sql_single> layout, except it uses
167 :     a Moodle database for user information and authentication.
168 :    
169 :     =cut
170 :    
171 :     # params used by moodle-backed tables
172 :     my %moodleParams = (
173 :     usernameRO => $moodle_username,
174 :     passwordRO => $moodle_password,
175 :     usernameRW => $moodle_username,
176 :     passwordRW => $moodle_password,
177 :     debug => $database_debug,
178 :     tablePrefix => $moodle_prefix,
179 :     courseName => $courseName,
180 :     );
181 :    
182 :     $dbLayouts{sql_moodle} = {
183 :     # start with sql_single table definitions
184 :     %{$dbLayouts{sql_single}},
185 :    
186 :     # then override user, password, and permission tables
187 :     # use the same record classes as sql_single
188 :     user => {
189 :     record => "WeBWorK::DB::Record::User",
190 :     schema => "WeBWorK::DB::Schema::Moodle::User",
191 :     driver => "WeBWorK::DB::Driver::SQL",
192 :     source => $moodle_dsn,
193 :     params => { %moodleParams },
194 :     },
195 :     password => {
196 :     record => "WeBWorK::DB::Record::Password",
197 :     schema => "WeBWorK::DB::Schema::Moodle::Password",
198 :     driver => "WeBWorK::DB::Driver::SQL",
199 :     source => $moodle_dsn,
200 :     params => { %moodleParams },
201 :     },
202 :     permission => {
203 :     record => "WeBWorK::DB::Record::PermissionLevel",
204 :     schema => "WeBWorK::DB::Schema::Moodle::Permission",
205 :     driver => "WeBWorK::DB::Driver::SQL",
206 :     source => $moodle_dsn,
207 :     params => { %moodleParams },
208 :     },
209 :    
210 :     # moodlekey => {
211 :     # # never actually use this, as this is a wierd record type...
212 :     # record => "WeBWorK::DB::Record::Key",
213 :     # schema => "WeBWorK::DB::Schema::Moodle::Key",
214 :     # driver => "WeBWorK::DB::Driver::SQL",
215 :     # source => $sqlMoodleSource,
216 :     # params => { %sqlParams,
217 :     # tablePrefix => "mdl_",
218 :     # },
219 :     # },
220 :     };

aubreyja at gmail dot com
ViewVC Help
Powered by ViewVC 1.0.9