Schema management/reflection features for Sqlite
array<string, mixed>
Array containing the foreign keys constraints names Necessary for composite foreign keys to be handled
Cake\Database\DriverInterface
The driver instance being used.
bool
Whether there is any table in this connection to SQLite containing sequences.
Constructor
Tries to use a matching database type to convert a SQL column definition to an abstract type definition.
Convert a column definition to the abstract types.
Convert foreign key constraints references to a valid stringified list
Convert string on clauses to the abstract ones.
Manipulate the default value.
Generate an ON clause for a foreign key.
Tries to use a matching database type to generate the SQL fragment for a single column in a table.
Generate the SQL queries needed to add foreign key constraints to the table
Generate the SQL fragment for a single column in a table.
Generate the SQL fragments for defining table constraints.
Convert field description results into abstract schema fields.
Convert a foreign key description into constraints on the Table object.
Convert an index description results into abstract schema indexes or constraints.
Convert options data into table options.
Generate the SQL to create a table.
Generate the SQL to describe a table.
Generate the SQL to describe the foreign keys in a table.
Generate the SQL to describe the indexes in a table.
Generate the SQL to describe table options
Generate the SQL queries needed to drop foreign key constraints from the table
Generate the SQL to drop a table.
Returns whether there is any table in this connection to SQLite containing sequences
Generate the SQL fragment for a single index in a table.
Generate the SQL to list the tables and views.
Generate the SQL to list the tables, excluding all views.
Generate the SQL to truncate a table.
__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.
Cake\Database\DriverInterface
$driver The driver to use.
_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.
string
$columnType The column type.
array
$definition The column definition.
array|null
_convertColumn(string $column): array<string, mixed>
Convert a column definition to the abstract types.
The returned type will be a type that Cake\Database\TypeFactory can handle.
string
$column The column type + length
array<string, mixed>
Cake\Database\Exception\DatabaseException
_convertConstraintColumns(array<string>|string $references): string
Convert foreign key constraints references to a valid stringified list
array<string>|string
$references The referenced columns of a foreign key constraint statement
string
_convertOnClause(string $clause): string
Convert string on clauses to the abstract ones.
string
$clause The on clause to convert.
string
_defaultValue(string|int|null $default): string|int|null
Manipulate the default value.
Sqlite includes quotes and bared NULLs in default values. We need to remove those.
string|int|null
$default The default value.
string|int|null
_foreignOnClause(string $on): string
Generate an ON clause for a foreign key.
string
$on The on clause
string
_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.
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.
string|null
addConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to add foreign key constraints to the table
SQLite can not properly handle adding a constraint to an existing table. This method is no-op
Cake\Database\Schema\TableSchema
$schema The table instance the foreign key constraints are.
array
columnSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single column in a table.
Cake\Database\Schema\TableSchema
$schema The table instance the column is in.
string
$name The name of the column.
string
Cake\Database\Exception\DatabaseException
constraintSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragments for defining table constraints.
Note integer primary keys will return ''. This is intentional as Sqlite requires that integer primary keys be defined in the column definition.
Cake\Database\Schema\TableSchema
$schema The table instance the column is in.
string
$name The name of the column.
string
convertColumnDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert field description results into abstract schema fields.
Cake\Database\Schema\TableSchema
$schema array
$row void
convertForeignKeyDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert a foreign key description into constraints on the Table object.
Cake\Database\Schema\TableSchema
$schema array
$row void
convertIndexDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert an index description results into abstract schema indexes or constraints.
Since SQLite does not have a way to get metadata about all indexes at once, additional queries are done here. Sqlite constraint names are not stable, and the names for constraints will not match those used to create the table. This is a limitation in Sqlite's metadata features.
Cake\Database\Schema\TableSchema
$schema The table object to append an index or constraint to.
array
$row The row data from describeIndexSql
.
void
convertOptionsDescription(Cake\Database\Schema\TableSchema $schema, array $row): void
Convert options data into table options.
Cake\Database\Schema\TableSchema
$schema Table instance.
array
$row The row of data.
void
createTableSql(Cake\Database\Schema\TableSchema $schema, array<string> $columns, array<string> $constraints, array<string> $indexes): array<string>
Generate the SQL to create a table.
Cake\Database\Schema\TableSchema
$schema array<string>
$columns array<string>
$constraints array<string>
$indexes array<string>
describeColumnSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe a table.
string
$tableName array<string, mixed>
$config array
describeForeignKeySql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the foreign keys in a table.
string
$tableName array<string, mixed>
$config array
describeIndexSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe the indexes in a table.
string
$tableName array<string, mixed>
$config array
describeOptionsSql(string $tableName, array<string, mixed> $config): array
Generate the SQL to describe table options
string
$tableName Table name.
array<string, mixed>
$config The connection configuration.
array
dropConstraintSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL queries needed to drop foreign key constraints from the table
SQLite can not properly handle dropping a constraint to an existing table. This method is no-op
Cake\Database\Schema\TableSchema
$schema The table instance the foreign key constraints are.
array
dropTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to drop a table.
Cake\Database\Schema\TableSchema
$schema Schema instance
array
hasSequences(): bool
Returns whether there is any table in this connection to SQLite containing sequences
bool
indexSql(Cake\Database\Schema\TableSchema $schema, string $name): string
Generate the SQL fragment for a single index in a table.
Cake\Database\Schema\TableSchema
$schema string
$name string
listTablesSql(array<string, mixed> $config): array
Generate the SQL to list the tables and views.
array<string, mixed>
$config The connection configuration to use for getting tables from.
array
listTablesWithoutViewsSql(array<string, mixed> $config): array<mixed>
Generate the SQL to list the tables, excluding all views.
array<string, mixed>
$config The connection configuration to use for getting tables from.
array<mixed>
truncateTableSql(Cake\Database\Schema\TableSchema $schema): array
Generate the SQL to truncate a table.
Cake\Database\Schema\TableSchema
$schema array
Array containing the foreign keys constraints names Necessary for composite foreign keys to be handled
array<string, mixed>
The driver instance being used.
Cake\Database\DriverInterface
Whether there is any table in this connection to SQLite containing sequences.
bool
© 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.SqliteSchemaDialect.html