mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Merge branch 'w20_MDL-25197_m23_innodb' of git://github.com/skodak/moodle
This commit is contained in:
commit
61bb4184a7
1 changed files with 19 additions and 8 deletions
|
@ -42,29 +42,40 @@ if ($DB->get_dbfamily() != 'mysql') {
|
||||||
notice('This function is for MySQL databases only!', new moodle_url('/admin/'));
|
notice('This function is for MySQL databases only!', new moodle_url('/admin/'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$prefix = str_replace('_', '\\_', $DB->get_prefix()).'%';
|
||||||
|
$sql = "SHOW TABLE STATUS WHERE Name LIKE ? AND Engine <> 'InnoDB'";
|
||||||
|
$rs = $DB->get_recordset_sql($sql, array($prefix));
|
||||||
|
if (!$rs->valid()) {
|
||||||
|
$rs->close();
|
||||||
|
echo $OUTPUT->box('<p>All tables are already using InnoDB database engine.</p>');
|
||||||
|
echo $OUTPUT->continue_button('/admin/');
|
||||||
|
echo $OUTPUT->footer();
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
|
||||||
if (data_submitted() and $confirm and confirm_sesskey()) {
|
if (data_submitted() and $confirm and confirm_sesskey()) {
|
||||||
|
|
||||||
echo $OUTPUT->notification('Please be patient and wait for this to complete...', 'notifysuccess');
|
echo $OUTPUT->notification('Please be patient and wait for this to complete...', 'notifysuccess');
|
||||||
|
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
if ($tables = $DB->get_tables()) {
|
foreach ($rs as $table) {
|
||||||
$DB->set_debug(true);
|
$DB->set_debug(true);
|
||||||
foreach ($tables as $table) {
|
$fulltable = $table->name;
|
||||||
$fulltable = $DB->get_prefix().$table;
|
|
||||||
try {
|
try {
|
||||||
$DB->change_database_structure("ALTER TABLE $fulltable ENGINE=INNODB");
|
$DB->change_database_structure("ALTER TABLE $fulltable ENGINE=INNODB");
|
||||||
} catch (moodle_exception $e) {
|
} catch (moodle_exception $e) {
|
||||||
echo $OUTPUT->notification(s($e->getMessage()).'<br />'.s($e->debuginfo));
|
echo $OUTPUT->notification(s($e->getMessage()).'<br />'.s($e->debuginfo));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
$DB->set_debug(false);
|
$DB->set_debug(false);
|
||||||
}
|
}
|
||||||
|
$rs->close();
|
||||||
echo $OUTPUT->notification('... done.', 'notifysuccess');
|
echo $OUTPUT->notification('... done.', 'notifysuccess');
|
||||||
echo $OUTPUT->continue_button(new moodle_url('/admin/'));
|
echo $OUTPUT->continue_button(new moodle_url('/admin/'));
|
||||||
echo $OUTPUT->footer();
|
echo $OUTPUT->footer();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
$rs->close();
|
||||||
$optionsyes = array('confirm'=>'1', 'sesskey'=>sesskey());
|
$optionsyes = array('confirm'=>'1', 'sesskey'=>sesskey());
|
||||||
$formcontinue = new single_button(new moodle_url('/admin/tool/innodb/index.php', $optionsyes), get_string('yes'));
|
$formcontinue = new single_button(new moodle_url('/admin/tool/innodb/index.php', $optionsyes), get_string('yes'));
|
||||||
$formcancel = new single_button(new moodle_url('/admin/'), get_string('no'), 'get');
|
$formcancel = new single_button(new moodle_url('/admin/'), get_string('no'), 'get');
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue