+++ /dev/null
-<?php
-
-if (!defined('MOODLE_INTERNAL')) {
- die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
-}
-
-require_once $CFG->libdir.'/formslib.php';
-
-class database_export_form extends moodleform {
-
- function definition() {
- $mform = $this->_form;
-
- $mform->addElement('header', 'database', get_string('dbexport', 'dbtransfer'));
- $mform->addElement('textarea', 'description', get_string('description'), array('rows'=>5, 'cols'=>60));
-
- $this->add_action_buttons(false, get_string('exportdata', 'dbtransfer'));
- }
-}
+++ /dev/null
-<?php
-
-require('../../config.php');
-require_once('lib.php');
-require_once('database_export_form.php');
-
-require_login();
-admin_externalpage_setup('dbexport');
-
-//create form
-$form = new database_export_form();
-
-if ($data = $form->get_data()) {
- dbtransfer_export_xml_database($data->description, $DB);
- die;
-}
-
-echo $OUTPUT->header();
-// TODO: add some more info here
-$form->display();
-echo $OUTPUT->footer();
+++ /dev/null
-<?php
-
-require('../../config.php');
-require_once('lib.php');
-require_once('database_transfer_form.php');
-
-require_login();
-admin_externalpage_setup('dbtransfer');
-
-// Create the form
-$form = new database_transfer_form();
-
-// If we have valid input.
-if ($data = $form->get_data()) {
- // Connect to the other database.
- list($dbtype, $dblibrary) = explode('/', $data->driver);
- $targetdb = moodle_database::get_driver_instance($dbtype, $dblibrary);
- if (!$targetdb->connect($data->dbhost, $data->dbuser, $data->dbpass, $data->dbname, $data->prefix, null)) {
- throw new dbtransfer_exception('notargetconectexception', null, "$CFG->wwwroot/$CFG->admin/dbtransfer/");
- }
- if ($targetdb->get_tables()) {
- throw new dbtransfer_exception('targetdatabasenotempty', null, "$CFG->wwwroot/$CFG->admin/dbtransfer/");
- }
-
- // Start output.
- echo $OUTPUT->header();
- $data->dbtype = $dbtype;
- echo $OUTPUT->heading(get_string('transferringdbto', 'dbtransfer', $data));
-
- // Do the transfer.
- $feedback = new html_list_progress_trace();
- dbtransfer_transfer_database($DB, $targetdb, $feedback);
- $feedback->finished();
-
- // Finish up.
- echo $OUTPUT->notification(get_string('success'), 'notifysuccess');
- echo $OUTPUT->continue_button("$CFG->wwwroot/$CFG->admin/");
- echo $OUTPUT->footer();
- die;
-}
-
-// Otherwise display the settings form.
-echo $OUTPUT->header();
-echo $OUTPUT->heading(get_string('transferdbtoserver', 'dbtransfer'));
-echo '<p>', get_string('transferdbintro', 'dbtransfer'), "</p>\n\n";
-$form->display();
-echo $OUTPUT->footer();
$ADMIN->add('experimental', $temp);
- // DB transfer related pages
- $ADMIN->add('experimental', new admin_externalpage('dbtransfer', get_string('dbtransfer', 'dbtransfer'), $CFG->wwwroot.'/'.$CFG->admin.'/dbtransfer/index.php', 'moodle/site:config', true));
- $ADMIN->add('experimental', new admin_externalpage('dbexport', get_string('dbexport', 'dbtransfer'), $CFG->wwwroot.'/'.$CFG->admin.'/dbtransfer/dbexport.php', 'moodle/site:config', true));
-
// "debugging" settingpage
$temp = new admin_settingpage('debugging', get_string('debugging', 'admin'));
$temp->add(new admin_setting_special_debug());
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Transfer form
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+require_once $CFG->libdir.'/formslib.php';
+
+class database_export_form extends moodleform {
+
+ function definition() {
+ $mform = $this->_form;
+
+ $mform->addElement('header', 'database', get_string('dbexport', 'tool_dbtransfer'));
+ $mform->addElement('textarea', 'description', get_string('description'), array('rows'=>5, 'cols'=>60));
+
+ $this->add_action_buttons(false, get_string('exportdata', 'tool_dbtransfer'));
+ }
+}
<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
-if (!defined('MOODLE_INTERNAL')) {
- die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page
-}
+/**
+ * Transfer form
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
require_once $CFG->libdir.'/formslib.php';
function definition() {
$mform = $this->_form;
- $mform->addElement('header', 'database', get_string('dbtransfer', 'dbtransfer'));
+ $mform->addElement('header', 'database', get_string('dbtransfer', 'tool_dbtransfer'));
$supported = array (
'mysqli/native',
$mform->addRule('dbpass', get_string('required'), 'required', null);
$mform->addRule('prefix', get_string('required'), 'required', null);
- $this->add_action_buttons(false, get_string('transferdata', 'dbtransfer'));
+ $this->add_action_buttons(false, get_string('transferdata', 'tool_dbtransfer'));
}
}
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Export
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+define('NO_OUTPUT_BUFFERING', true);
+
+require('../../../config.php');
+require_once('locallib.php');
+require_once('database_export_form.php');
+
+require_login();
+admin_externalpage_setup('tooldbexport');
+
+//create form
+$form = new database_export_form();
+
+if ($data = $form->get_data()) {
+ dbtransfer_export_xml_database($data->description, $DB);
+ die;
+}
+
+echo $OUTPUT->header();
+// TODO: add some more info here
+$form->display();
+echo $OUTPUT->footer();
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Transfer tool
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+define('NO_OUTPUT_BUFFERING', true);
+
+require('../../../config.php');
+require_once('locallib.php');
+require_once('database_transfer_form.php');
+
+require_login();
+admin_externalpage_setup('tooldbtransfer');
+
+// Create the form
+$form = new database_transfer_form();
+
+// If we have valid input.
+if ($data = $form->get_data()) {
+ // Connect to the other database.
+ list($dbtype, $dblibrary) = explode('/', $data->driver);
+ $targetdb = moodle_database::get_driver_instance($dbtype, $dblibrary);
+ if (!$targetdb->connect($data->dbhost, $data->dbuser, $data->dbpass, $data->dbname, $data->prefix, null)) {
+ throw new dbtransfer_exception('notargetconectexception', null, "$CFG->wwwroot/$CFG->admin/tool/dbtransfer/");
+ }
+ if ($targetdb->get_tables()) {
+ throw new dbtransfer_exception('targetdatabasenotempty', null, "$CFG->wwwroot/$CFG->admin/tool/dbtransfer/");
+ }
+
+ // Start output.
+ echo $OUTPUT->header();
+ $data->dbtype = $dbtype;
+ echo $OUTPUT->heading(get_string('transferringdbto', 'tool_dbtransfer', $data));
+
+ // Do the transfer.
+ $feedback = new html_list_progress_trace();
+ dbtransfer_transfer_database($DB, $targetdb, $feedback);
+ $feedback->finished();
+
+ // Finish up.
+ echo $OUTPUT->notification(get_string('success'), 'notifysuccess');
+ echo $OUTPUT->continue_button("$CFG->wwwroot/$CFG->admin/");
+ echo $OUTPUT->footer();
+ die;
+}
+
+// Otherwise display the settings form.
+echo $OUTPUT->header();
+echo $OUTPUT->heading(get_string('transferdbtoserver', 'tool_dbtransfer'));
+echo '<p>', get_string('transferdbintro', 'tool_dbtransfer'), "</p>\n\n";
+$form->display();
+echo $OUTPUT->footer();
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Strings for component 'tool_generator', language 'en', branch 'MOODLE_22_STABLE'
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2011 petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+$string['dbexport'] = 'Database transfer';
+$string['dbtransfer'] = 'Database export';
+$string['exportdata'] = 'Export data';
+$string['notargetconectexception'] = 'Can not connect target database, sorry.';
+$string['pluginname'] = 'Database transfer';
+$string['transferdata'] = 'Transfer data';
+$string['transferdbintro'] = 'This script will transfer the entire contents of this database to another database server.';
+$string['transferdbtoserver'] = 'Transfer this Moodle database to another server';
+$string['transferringdbto'] = 'Transferring this database to {$a->dbtype} database {$a->dbname} on {$a->dbhost}';
+
<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+/**
+ * Export db content to file.
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda {@link http://skodak.org}
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
/*
TODO:
- exporting to server file >2GB fails in 32bit operating systems - needs warning
- - we may run out of disk space exporting to srever file - we must verify the file is not truncated; read from the end of file?
+ - we may run out of disk space exporting to server file - we must verify the file is not truncated; read from the end of file?
- when sending file >4GB - FAT32 limit, Apache limit, browser limit - needs warning
- there must be some form of progress bar during export, transfer - new tracking class could be passed around
- command line operation - could work around some 2G/4G limits in PHP; useful for cron full backups
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Link to InnoDB conversion tool
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2011 Petr Skoda {@link http://skodak.org}
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+if ($hassiteconfig) {
+ // DB transfer related pages
+ $ADMIN->add('experimental', new admin_externalpage('tooldbtransfer', get_string('dbtransfer', 'tool_dbtransfer'), $CFG->wwwroot.'/'.$CFG->admin.'/tool/dbtransfer/index.php', 'moodle/site:config', true));
+ $ADMIN->add('experimental', new admin_externalpage('tooldbexport', get_string('dbexport', 'tool_dbtransfer'), $CFG->wwwroot.'/'.$CFG->admin.'/tool/dbtransfer/dbexport.php', 'moodle/site:config', true));
+}
\ No newline at end of file
--- /dev/null
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Version details.
+ *
+ * @package tool
+ * @subpackage dbtransfer
+ * @copyright 2008 Petr Skoda
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+$plugin->version = 2011091700; // The current plugin version (Date: YYYYMMDDXX)
+$plugin->requires = 2011091600; // Requires this Moodle version
+$plugin->component = 'tool_dbtransfer'; // Full name of the plugin (used for diagnostics)
$string['dbtransfer'] = 'Database transfer';
$string['differenttableexception'] = 'Table {$a} structure does not match.';
$string['done'] = 'Done';
-$string['exportdata'] = 'Export data';
$string['exportschemaexception'] = 'Current database structure does not match all install.xml files. <br /> {$a}';
$string['checkingsourcetables'] = 'Checking source table structure';
$string['importschemaexception'] = 'Current database structure does not match all install.xml files. <br /> {$a}';
$string['importversionmismatchexception'] = 'Current version {$a->currentver} does not match exported version {$a->schemaver}.';
$string['malformedxmlexception'] = 'Malformed XML found, can not continue.';
-$string['notargetconectexception'] = 'Can not connect target database, sorry.';
-$string['transferdata'] = 'Transfer data';
-$string['transferdbintro'] = 'This script will transfer the entire contents of this database to another database server.';
-$string['transferdbtoserver'] = 'Transfer this Moodle database to another server';
-$string['transferringdbto'] = 'Transferring this database to {$a->dbtype} database {$a->dbname} on {$a->dbhost}';
$string['unknowntableexception'] = 'Unknown table {$a} found in export file.';
$this->feeback = $feeback;
}
if ($check_schema) {
- $this->feeback->output(get_string('checkingsourcetables', 'dbtransfer'));
+ $this->feeback->output(get_string('checkingsourcetables', 'core_dbtransfer'));
}
parent::__construct($mdb_source, $check_schema);
- $this->feeback->output(get_string('creatingtargettables', 'dbtransfer'));
+ $this->feeback->output(get_string('creatingtargettables', 'core_dbtransfer'));
$this->importer = new database_importer($mdb_target, $check_schema);
}
* @return void
*/
public function begin_database_export($version, $release, $timestamp, $description) {
- $this->feeback->output(get_string('copyingtables', 'dbtransfer'));
+ $this->feeback->output(get_string('copyingtables', 'core_dbtransfer'));
$this->importer->begin_database_import($version, $timestamp, $description);
}
* @return void
*/
public function begin_table_export(xmldb_table $table) {
- $this->feeback->output(get_string('copyingtable', 'dbtransfer', $table->getName()), 1);
+ $this->feeback->output(get_string('copyingtable', 'core_dbtransfer', $table->getName()), 1);
$this->importer->begin_table_import($table->getName(), $table->getHash());
}
* @return void
*/
public function finish_table_export(xmldb_table $table) {
- $this->feeback->output(get_string('done', 'dbtransfer', $table->getName()), 2);
+ $this->feeback->output(get_string('done', 'core_dbtransfer', $table->getName()), 2);
$this->importer->finish_table_import($table->getName());
}
/**
- * DTL == Dtatabase Transfer Library
+ * DTL == Database Transfer Library
*
* This library includes all the required functions used to handle
* transfer of data from one database to another.
if (empty($link)) {
$link = "$CFG->wwwroot/$CFG->admin/";
}
- parent::__construct($errorcode, 'dbtransfer', $link, $a, $debuginfo);
+ parent::__construct($errorcode, 'core_dbtransfer', $link, $a, $debuginfo);
}
}
),
'tool' => array(
- 'bloglevelupgrade', 'capability', 'generator', 'health',
+ 'bloglevelupgrade', 'capability', 'dbtransfer', 'generator', 'health',
'innodb', 'langimport', 'profiling', 'unittest', 'unsuproles'
),