ChangeSet

Contains a set of JSchemaChange objects for a particular instance of Joomla.

Each of these objects contains a DDL query that should have been run against the database when this database was created or updated. This enables the Installation Manager to check that the current database schema is up to date.

since

2.5

Methods

__construct

Constructor: builds array of $changeItems by processing the .sql files in a folder.

__construct(\JDatabaseDriver $db, string $folder = null) 

The folder for the Joomla core updates is administrator/components/com_admin/sql/updates/<database>.

since

2.5

Arguments

$db

\JDatabaseDriverThe current database object

$folder

stringThe full path to the folder containing the update queries

check

Checks the database and returns an array of any errors found.

check() : array

Note these are not database errors but rather situations where the current schema is not up to date.

since

2.5

Response

arrayArray of errors if any.

fix

Runs the update query to apply the change to the database

fix() : void
since

2.5

getInstance

Returns a reference to the ChangeSet object, only creating it if it doesn't already exist.

getInstance(\JDatabaseDriver $db, string $folder = null) : \Joomla\CMS\Schema\ChangeSet
static
since

2.5

Arguments

$db

\JDatabaseDriverThe current database object

$folder

stringThe full path to the folder containing the update queries

Response

\Joomla\CMS\Schema\ChangeSet

getSchema

Gets the current database schema, based on the highest version number.

getSchema() : string

Note that the .sql files are named based on the version and date, so the file name of the last file should match the database schema version in the #__schemas table.

since

2.5

Response

stringthe schema version for the database

getStatus

Returns an array of results for this set

getStatus() : array
since

2.5

Response

arrayassociative array of changeitems grouped by unchecked, ok, error, and skipped

getUpdateFiles

Get list of SQL update files for this database

getUpdateFiles() : array
since

2.5

Response

arraylist of sql update full-path names

getUpdateQueries

Get array of SQL queries

getUpdateQueries(array $sqlfiles) : array
since

2.5

Arguments

$sqlfiles

arrayArray of .sql update filenames.

Response

arrayArray of \stdClass objects where: file=filename, update_query = text of SQL update query

Properties

changeItems

Array of ChangeItem objects

since

2.5

Type(s)

array<mixed,\Joomla\CMS\Schema\ChangeItem>

db

\JDatabaseDriver object

since

2.5

Type(s)

\JDatabaseDriver

folder

Folder where SQL update files will be found

since

2.5

Type(s)

string

instance

The singleton instance of this object

static
since

3.5.1

Type(s)

\Joomla\CMS\Schema\ChangeSet