mirror of
https://github.com/moodle/moodle.git
synced 2025-05-05 15:57:04 +02:00
MDL-43189 core: improve validating db settings during cli install
This commit is contained in:
parent
6def9cd253
commit
fffb043eae
@ -511,100 +511,105 @@ if ($interactive) {
|
|||||||
$database = $databases[$CFG->dbtype];
|
$database = $databases[$CFG->dbtype];
|
||||||
|
|
||||||
|
|
||||||
// ask for db host
|
// We cannot do any validation until all DB connection data is provided.
|
||||||
if ($interactive) {
|
$hintdatabase = '';
|
||||||
cli_separator();
|
do {
|
||||||
cli_heading(get_string('databasehost', 'install'));
|
echo $hintdatabase;
|
||||||
if ($options['dbhost'] !== '') {
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbhost']);
|
// Ask for db host.
|
||||||
|
if ($interactive) {
|
||||||
|
cli_separator();
|
||||||
|
cli_heading(get_string('databasehost', 'install'));
|
||||||
|
if ($options['dbhost'] !== '') {
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbhost']);
|
||||||
|
} else {
|
||||||
|
$prompt = get_string('clitypevalue', 'admin');
|
||||||
|
}
|
||||||
|
$CFG->dbhost = cli_input($prompt, $options['dbhost']);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$prompt = get_string('clitypevalue', 'admin');
|
$CFG->dbhost = $options['dbhost'];
|
||||||
}
|
}
|
||||||
$CFG->dbhost = cli_input($prompt, $options['dbhost']);
|
|
||||||
|
|
||||||
} else {
|
// Ask for db name.
|
||||||
$CFG->dbhost = $options['dbhost'];
|
if ($interactive) {
|
||||||
}
|
cli_separator();
|
||||||
|
cli_heading(get_string('databasename', 'install'));
|
||||||
|
if ($options['dbname'] !== '') {
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbname']);
|
||||||
|
} else {
|
||||||
|
$prompt = get_string('clitypevalue', 'admin');
|
||||||
|
}
|
||||||
|
$CFG->dbname = cli_input($prompt, $options['dbname']);
|
||||||
|
|
||||||
// ask for db name
|
|
||||||
if ($interactive) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('databasename', 'install'));
|
|
||||||
if ($options['dbname'] !== '') {
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbname']);
|
|
||||||
} else {
|
} else {
|
||||||
$prompt = get_string('clitypevalue', 'admin');
|
$CFG->dbname = $options['dbname'];
|
||||||
}
|
}
|
||||||
$CFG->dbname = cli_input($prompt, $options['dbname']);
|
|
||||||
|
|
||||||
} else {
|
// Ask for db prefix.
|
||||||
$CFG->dbname = $options['dbname'];
|
if ($interactive) {
|
||||||
}
|
cli_separator();
|
||||||
|
cli_heading(get_string('dbprefix', 'install'));
|
||||||
|
//TODO: solve somehow the prefix trouble for oci.
|
||||||
|
if ($options['prefix'] !== '') {
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['prefix']);
|
||||||
|
} else {
|
||||||
|
$prompt = get_string('clitypevalue', 'admin');
|
||||||
|
}
|
||||||
|
$CFG->prefix = cli_input($prompt, $options['prefix']);
|
||||||
|
|
||||||
// ask for db prefix
|
|
||||||
if ($interactive) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('dbprefix', 'install'));
|
|
||||||
//TODO: solve somehow the prefix trouble for oci
|
|
||||||
if ($options['prefix'] !== '') {
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['prefix']);
|
|
||||||
} else {
|
} else {
|
||||||
$prompt = get_string('clitypevalue', 'admin');
|
$CFG->prefix = $options['prefix'];
|
||||||
}
|
}
|
||||||
$CFG->prefix = cli_input($prompt, $options['prefix']);
|
|
||||||
|
|
||||||
} else {
|
// Ask for db port.
|
||||||
$CFG->prefix = $options['prefix'];
|
if ($interactive) {
|
||||||
}
|
cli_separator();
|
||||||
|
cli_heading(get_string('databaseport', 'install'));
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbport']);
|
||||||
|
$CFG->dboptions['dbport'] = (int) cli_input($prompt, $options['dbport']);
|
||||||
|
|
||||||
// ask for db port
|
|
||||||
if ($interactive) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('databaseport', 'install'));
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbport']);
|
|
||||||
$CFG->dboptions['dbport'] = (int)cli_input($prompt, $options['dbport']);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$CFG->dboptions['dbport'] = (int)$options['dbport'];
|
|
||||||
}
|
|
||||||
if ($CFG->dboptions['dbport'] <= 0) {
|
|
||||||
$CFG->dboptions['dbport'] = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// ask for db socket
|
|
||||||
if ($CFG->ostype === 'WINDOWS') {
|
|
||||||
$CFG->dboptions['dbsocket'] = '';
|
|
||||||
|
|
||||||
} else if ($interactive and empty($CFG->dboptions['dbport'])) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('databasesocket', 'install'));
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbsocket']);
|
|
||||||
$CFG->dboptions['dbsocket'] = cli_input($prompt, $options['dbsocket']);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$CFG->dboptions['dbsocket'] = $options['dbsocket'];
|
|
||||||
}
|
|
||||||
|
|
||||||
// ask for db user
|
|
||||||
if ($interactive) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('databaseuser', 'install'));
|
|
||||||
if ($options['dbuser'] !== '') {
|
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbuser']);
|
|
||||||
} else {
|
} else {
|
||||||
$prompt = get_string('clitypevalue', 'admin');
|
$CFG->dboptions['dbport'] = (int) $options['dbport'];
|
||||||
|
}
|
||||||
|
if ($CFG->dboptions['dbport'] <= 0) {
|
||||||
|
$CFG->dboptions['dbport'] = '';
|
||||||
}
|
}
|
||||||
$CFG->dbuser = cli_input($prompt, $options['dbuser']);
|
|
||||||
|
|
||||||
} else {
|
// Ask for db socket.
|
||||||
$CFG->dbuser = $options['dbuser'];
|
if ($CFG->ostype === 'WINDOWS') {
|
||||||
}
|
$CFG->dboptions['dbsocket'] = '';
|
||||||
|
|
||||||
|
} else if ($interactive and empty($CFG->dboptions['dbport'])) {
|
||||||
|
cli_separator();
|
||||||
|
cli_heading(get_string('databasesocket', 'install'));
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbsocket']);
|
||||||
|
$CFG->dboptions['dbsocket'] = cli_input($prompt, $options['dbsocket']);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$CFG->dboptions['dbsocket'] = $options['dbsocket'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ask for db user.
|
||||||
|
if ($interactive) {
|
||||||
|
cli_separator();
|
||||||
|
cli_heading(get_string('databaseuser', 'install'));
|
||||||
|
if ($options['dbuser'] !== '') {
|
||||||
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbuser']);
|
||||||
|
} else {
|
||||||
|
$prompt = get_string('clitypevalue', 'admin');
|
||||||
|
}
|
||||||
|
$CFG->dbuser = cli_input($prompt, $options['dbuser']);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$CFG->dbuser = $options['dbuser'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ask for db password.
|
||||||
|
if ($interactive) {
|
||||||
|
cli_separator();
|
||||||
|
cli_heading(get_string('databasepass', 'install'));
|
||||||
|
|
||||||
// ask for db password
|
|
||||||
if ($interactive) {
|
|
||||||
cli_separator();
|
|
||||||
cli_heading(get_string('databasepass', 'install'));
|
|
||||||
do {
|
|
||||||
if ($options['dbpass'] !== '') {
|
if ($options['dbpass'] !== '') {
|
||||||
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbpass']);
|
$prompt = get_string('clitypevaluedefault', 'admin', $options['dbpass']);
|
||||||
} else {
|
} else {
|
||||||
@ -612,19 +617,23 @@ if ($interactive) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$CFG->dbpass = cli_input($prompt, $options['dbpass']);
|
$CFG->dbpass = cli_input($prompt, $options['dbpass']);
|
||||||
if (function_exists('distro_pre_create_db')) { // Hook for distros needing to do something before DB creation
|
if (function_exists('distro_pre_create_db')) { // Hook for distros needing to do something before DB creation.
|
||||||
$distro = distro_pre_create_db($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']), $distro);
|
$distro = distro_pre_create_db($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
|
||||||
|
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']),
|
||||||
|
$distro);
|
||||||
}
|
}
|
||||||
$hint_database = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']));
|
$hintdatabase = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
|
||||||
} while ($hint_database !== '');
|
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$CFG->dbpass = $options['dbpass'];
|
$CFG->dbpass = $options['dbpass'];
|
||||||
$hint_database = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix, array('dbpersist'=>0, 'dbport'=>$CFG->dboptions['dbport'], 'dbsocket'=>$CFG->dboptions['dbsocket']));
|
$hintdatabase = install_db_validate($database, $CFG->dbhost, $CFG->dbuser, $CFG->dbpass, $CFG->dbname, $CFG->prefix,
|
||||||
if ($hint_database !== '') {
|
array('dbpersist' => 0, 'dbport' => $CFG->dboptions['dbport'], 'dbsocket' => $CFG->dboptions['dbsocket']));
|
||||||
cli_error(get_string('dbconnectionerror', 'install'));
|
if ($hintdatabase !== '') {
|
||||||
|
cli_error(get_string('dbconnectionerror', 'install'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} while ($hintdatabase !== '');
|
||||||
|
|
||||||
// ask for fullname
|
// ask for fullname
|
||||||
if ($interactive) {
|
if ($interactive) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user