On this page
Class SchemaDialect
Base class for schema implementations.
This class contains methods that are common across the various SQL dialects.
Property Summary
-
$_driver protected
Cake\Database\DriverInterface
The driver instance being used.
Method Summary
__construct() public
Constructor
_applyTypeSpecificColumnConversion() protected
Tries to use a matching database type to convert a SQL column definition to an abstract type definition.
_convertConstraintColumns() protected
Convert foreign key constraints references to a valid stringified list
_convertOnClause() protected
Convert string on clauses to the abstract ones.
_foreignOnClause() protected
Generate an ON clause for a foreign key.
_getTypeSpecificColumnSql() protected
Tries to use a matching database type to generate the SQL fragment for a single column in a table.
addConstraintSql() abstract public
Generate the SQL queries needed to add foreign key constraints to the table
columnSql() abstract public
Generate the SQL fragment for a single column in a table.
constraintSql() abstract public
Generate the SQL fragments for defining table constraints.
convertColumnDescription() abstract public
Convert field description results into abstract schema fields.
convertForeignKeyDescription() abstract public
Convert a foreign key description into constraints on the Table object.
convertIndexDescription() abstract public
Convert an index description results into abstract schema indexes or constraints.
convertOptionsDescription() public
Convert options data into table options.
createTableSql() abstract public
Generate the SQL to create a table.
describeColumnSql() abstract public
Generate the SQL to describe a table.
describeForeignKeySql() abstract public
Generate the SQL to describe the foreign keys in a table.
describeIndexSql() abstract public
Generate the SQL to describe the indexes in a table.
describeOptionsSql() public
Generate the SQL to describe table options
dropConstraintSql() abstract public
Generate the SQL queries needed to drop foreign key constraints from the table
dropTableSql() public
Generate the SQL to drop a table.
indexSql() abstract public
Generate the SQL fragment for a single index in a table.
listTablesSql() abstract public
Generate the SQL to list the tables.
listTablesWithoutViewsSql() public @method
Generate the SQL to list the tables, excluding all views.
truncateTableSql() abstract public
Generate the SQL to truncate a table.
Method Detail
__construct() public
__construct(Cake\Database\DriverInterface $driver)
Constructor
This constructor will connect the driver so that methods like columnSql() and others will fail when the driver has not been connected.
Parameters
Cake\Database\DriverInterface
$driver-
The driver to use.
_applyTypeSpecificColumnConversion() protected
_applyTypeSpecificColumnConversion(string $columnType, array $definition): array|null
Tries to use a matching database type to convert a SQL column definition to an abstract type definition.
Parameters
string
$columnType-
The column type.
array
$definition-
The column definition.
Returns
array|null
_convertConstraintColumns() protected
_convertConstraintColumns(array<string>|string $references): string
Convert foreign key constraints references to a valid stringified list
Parameters
array<string>|string
$references-
The referenced columns of a foreign key constraint statement
Returns
string
_convertOnClause() protected
_convertOnClause(string $clause): string
Convert string on clauses to the abstract ones.
Parameters
string
$clause-
The on clause to convert.
Returns
string
_foreignOnClause() protected
_foreignOnClause(string $on): string
Generate an ON clause for a foreign key.
Parameters
string
$on-
The on clause
Returns
string
_getTypeSpecificColumnSql() protected
_getTypeSpecificColumnSql(string $columnType, Cake\Database\Schema\TableSchemaInterface $schema, string $column): string|null
Tries to use a matching database type to generate the SQL fragment for a single column in a table.
Parameters
string
$columnType-
The column type.
Cake\Database\Schema\TableSchemaInterface
$schema-
The table schema instance the column is in.
string
$column-
The name of the column.
Returns
string|null
addConstraintSql() abstract public
addConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to add foreign key constraints to the table
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table instance the foreign key constraints are.
Returns
array
columnSql() abstract public
columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single column in a table.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table instance the column is in.
string
$name-
The name of the column.
Returns
string
constraintSql() abstract public
constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragments for defining table constraints.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table instance the column is in.
string
$name-
The name of the column.
Returns
string
convertColumnDescription() abstract public
convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert field description results into abstract schema fields.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table object to append fields to.
array
$row-
The row data from
describeColumnSql
.
Returns
void
convertForeignKeyDescription() abstract public
convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert a foreign key description into constraints on the Table object.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table object to append a constraint to.
array
$row-
The row data from
describeForeignKeySql
.
Returns
void
convertIndexDescription() abstract public
convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert an index description results into abstract schema indexes or constraints.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table object to append an index or constraint to.
array
$row-
The row data from
describeIndexSql
.
Returns
void
convertOptionsDescription() public
convertOptionsDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert options data into table options.
Parameters
Cake\Database\Schema\TableSchema
$schema-
Table instance.
array
$row-
The row of data.
Returns
void
createTableSql() abstract public
createTableSql(Cake\Database\Schema\TableSchema $schema, array<string> $columns, array<string> $constraints, array<string> $indexes): array<string>
Generate the SQL to create a table.
Parameters
Cake\Database\Schema\TableSchema
$schema-
Table instance.
array<string>
$columns-
The columns to go inside the table.
array<string>
$constraints-
The constraints for the table.
array<string>
$indexes-
The indexes for the table.
Returns
array<string>
describeColumnSql() abstract public
describeColumnSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe a table.
Parameters
string
$tableName-
The table name to get information on.
array<string, mixed>
$config-
The connection configuration.
Returns
array
describeForeignKeySql() abstract public
describeForeignKeySql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the foreign keys in a table.
Parameters
string
$tableName-
The table name to get information on.
array<string, mixed>
$config-
The connection configuration.
Returns
array
describeIndexSql() abstract public
describeIndexSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the indexes in a table.
Parameters
string
$tableName-
The table name to get information on.
array<string, mixed>
$config-
The connection configuration.
Returns
array
describeOptionsSql() public
describeOptionsSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe table options
Parameters
string
$tableName-
Table name.
array<string, mixed>
$config-
The connection configuration.
Returns
array
dropConstraintSql() abstract public
dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to drop foreign key constraints from the table
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table instance the foreign key constraints are.
Returns
array
dropTableSql() public
dropTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to drop a table.
Parameters
Cake\Database\Schema\TableSchema
$schema-
Schema instance
Returns
array
indexSql() abstract public
indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single index in a table.
Parameters
Cake\Database\Schema\TableSchema
$schema-
The table object the column is in.
string
$name-
The name of the column.
Returns
string
listTablesSql() abstract public
listTablesSql(array<string, mixed> $config): array
Generate the SQL to list the tables.
Parameters
array<string, mixed>
$config-
The connection configuration to use for getting tables from.
Returns
array
listTablesWithoutViewsSql() public @method
listTablesWithoutViewsSql(array $config): array<mixed>
Generate the SQL to list the tables, excluding all views.
Parameters
array
$config
Returns
array<mixed>
truncateTableSql() abstract public
truncateTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to truncate a table.
Parameters
Cake\Database\Schema\TableSchema
$schema-
Table instance.
Returns
array
Property Detail
$_driver protected
The driver instance being used.
Type
Cake\Database\DriverInterface
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/class-Cake.Database.Schema.SchemaDialect.html