abstract class migration implements migration_interface

Abstract base class for database migrations

Each migration consists of a set of schema and data changes to be implemented in a subclass. This class provides various utility methods to simplify editing a phpBB.

Properties

protected config $config
protected driver_interface $db
protected tools_interface $db_tools
protected string $table_prefix
protected string $phpbb_root_path
protected string $php_ext
protected array $errors
protected array $queries

Methods

__construct(config $config, driver_interface $db, tools_interface $db_tools, string $phpbb_root_path, string $php_ext, string $table_prefix)

Constructor

static array
depends_on()

Defines other migrations to be applied first

bool
effectively_installed()

Allows you to check if the migration is effectively installed (entirely optional)

array
update_schema()

Updates the database schema by providing a set of change instructions

array
revert_schema()

Reverts the database schema by providing a set of change instructions

array
update_data()

Updates data by returning a list of instructions to be executed

array
revert_data()

Reverts data by returning a list of instructions to be executed

mixed
sql_query(string $sql)

Wrapper for running queries to generate user feedback on updates

array
get_queries()

Get the list of queries run

Details

at line 59
__construct(config $config, driver_interface $db, tools_interface $db_tools, string $phpbb_root_path, string $php_ext, string $table_prefix)

Constructor

Parameters

config $config
driver_interface $db
tools_interface $db_tools
string $phpbb_root_path
string $php_ext
string $table_prefix

at line 75
static array depends_on()

Defines other migrations to be applied first

Return Value

array

An array of migration class names

at line 83
bool effectively_installed()

Allows you to check if the migration is effectively installed (entirely optional)

This is checked when a migration is installed. If true is returned, the migration will be set as installed without performing the database changes. This function is intended to help moving to migrations from a previous database updater, where some migrations may have been installed already even though they are not yet listed in the migrations table.

Return Value

bool

True if this migration is installed, False if this migration is not installed (checked on install)

at line 91
array update_schema()

Updates the database schema by providing a set of change instructions

Return Value

array

Array of schema changes (compatible with db_tools->perform_schema_changes())

at line 99
array revert_schema()

Reverts the database schema by providing a set of change instructions

Return Value

array

Array of schema changes (compatible with db_tools->perform_schema_changes())

at line 107
array update_data()

Updates data by returning a list of instructions to be executed

Return Value

array

Array of data update instructions

at line 115
array revert_data()

Reverts data by returning a list of instructions to be executed

Return Value

array

Array of data instructions that will be performed on revert NOTE: calls to tools (such as config.add) are automatically reverted when possible, so you should not attempt to revert those, this is mostly for otherwise unrevertable calls (custom functions for example)

at line 126
protected mixed sql_query(string $sql)

Wrapper for running queries to generate user feedback on updates

Parameters

string $sql

SQL query to run on the database

Return Value

mixed

Query result from db->sql_query()

at line 162
array get_queries()

Get the list of queries run

Return Value

array