Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
Public Member Functions | Protected Attributes | List of all members
database_importer Class Reference

Base class for database import operations. More...

Inheritance diagram for database_importer:
xml_database_importer file_xml_database_importer string_xml_database_importer

Public Member Functions

 __construct (moodle_database $mdb, $check_schema=true)
 Object constructor. More...
 
 begin_database_import ($version, $timestamp)
 Callback function. More...
 
 begin_table_import ($tablename, $schemaHash)
 Callback function. More...
 
 finish_database_import ()
 Callback function. More...
 
 finish_table_import ($tablename)
 Callback function. More...
 
 import_database ()
 Common import method. More...
 
 import_table_data ($tablename, $data)
 Callback function. More...
 
 set_transaction_mode ($mode)
 How to use transactions during the import. More...
 

Protected Attributes

bool $check_schema
 Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by. More...
 
database_manager $manager
 Database manager of the target database (a. More...
 
moodle_database $mdb
 Connection to the target database (a. More...
 
xmldb_structure $schema
 Target database schema in XMLDB format (a. More...
 
moodle_transaction $transaction
 Transaction object.
 
string $transactionmode = 'allinone'
 How to use transactions.
 

Detailed Description

Base class for database import operations.

This class implements basic callbacks for import operations and defines the

See also
import_database method as a common method for all importers. In general, subclasses will override import_database and call other methods in appropriate moments. Between a single pair of calls to
begin_database_import and
finish_database_import, multiple non-overlapping pairs of calls may be made to
begin_table_import and
finish_database_import for different tables. Between one pair of calls to
begin_table_import and
finish_database_import multiple calls may be made to
import_table_data for the same table. This class can be used directly, if the standard control flow (defined above) is respected.

Constructor & Destructor Documentation

◆ __construct()

database_importer::__construct ( moodle_database  $mdb,
  $check_schema = true 
)

Object constructor.

Parameters
moodle_database$mdbConnection to the target database (a
See also
moodle_database object). Use null to use the current $DB connection.
Parameters
boolean$check_schema- whether or not to check that XML database schema matches the RDBMS database schema before importing (inside
See also
begin_database_import).

Member Function Documentation

◆ begin_database_import()

database_importer::begin_database_import (   $version,
  $timestamp 
)

Callback function.

Should be called only once database per import operation, before any database changes are made. It will check the database schema if

See also
check_schema is true
Exceptions
dbtransfer_exceptionif any checking (e.g. database schema, Moodle version) fails
Parameters
float$versionthe version of the system which generated the data
string$timestampthe timestamp of the data (in ISO 8601) format.
Return values
void

◆ begin_table_import()

database_importer::begin_table_import (   $tablename,
  $schemaHash 
)

Callback function.

Should be called only once per table import operation, before any table changes are made. It will delete all table data.

Exceptions
dbtransfer_exceptionan unknown table import is attempted
ddl_table_missing_exceptionif the table is missing
Parameters
string$tablename- the name of the table that will be imported
string$schemaHash- the hash of the xmldb_table schema of the table
Return values
void

◆ finish_database_import()

database_importer::finish_database_import ( )

Callback function.

Should be called only once database per import operation, after all database changes are made. It will commit changes.

Return values
void

◆ finish_table_import()

database_importer::finish_table_import (   $tablename)

Callback function.

Should be called only once per table import operation, after all table changes are made. It will reset table sequences if any.

Parameters
string$tablename
Return values
void

◆ import_database()

database_importer::import_database ( )

Common import method.

Return values
void

Reimplemented in file_xml_database_importer, and string_xml_database_importer.

◆ import_table_data()

database_importer::import_table_data (   $tablename,
  $data 
)

Callback function.

Should be called only once per record import operation, only between

See also
begin_table_import and
finish_table_import calls. It will insert table data.
Exceptions
dml_exceptionif data insert operation failed
Parameters
string$tablename- the name of the table in which data will be imported
object$data- data object (fields and values will be inserted into table)
Return values
void

◆ set_transaction_mode()

database_importer::set_transaction_mode (   $mode)

How to use transactions during the import.

Parameters
string$mode'pertable', 'allinone' or 'none'.

Member Data Documentation

◆ $check_schema

bool database_importer::$check_schema
protected

Boolean flag - whether or not to check that XML database schema matches the RDBMS database schema before importing (used by.

See also
begin_database_import).

◆ $manager

database_manager database_importer::$manager
protected

Database manager of the target database (a.

See also
database_manager object).

◆ $mdb

moodle_database database_importer::$mdb
protected

Connection to the target database (a.

See also
moodle_database object).

◆ $schema

xmldb_structure database_importer::$schema
protected

Target database schema in XMLDB format (a.

See also
xmldb_structure object).

The documentation for this class was generated from the following file: