Class SqliteSchema

Schema management/reflection features for Sqlite

Cake\Database\Schema\BaseSchema
Extended by Cake\Database\Schema\SqliteSchema

Properties summary

  • $_constraintsIdMap protected
    array

    Array containing the foreign keys constraints names Necessary for composite foreign keys to be handled

  • $_hasSequences protected
    boolean
    Whether there is any table in this connection to SQLite containing sequences.

Inherited Properties

Method Summary

Method Detail

_convertColumn()source protected

_convertColumn( string $column )

Convert a column definition to the abstract types.

The returned type will be a type that Cake\Database\Type can handle.

Parameters

string $column
The column type + length

Returns

array
Array of column information.

Throws

Cake\Database\Exception
when unable to parse column type

_defaultValue()source protected

_defaultValue( string|null $default )

Manipulate the default value.

Sqlite includes quotes and bared NULLs in default values. We need to remove those.

Parameters

string|null $default
The default value.

Returns

string|null

addConstraintSql()source public

addConstraintSql( Cake\Database\Schema\TableSchema $schema )

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

Parameters

Cake\Database\Schema\TableSchema $schema
The table instance the foreign key constraints are.

Returns

array
SQL fragment.

columnSql()source public

columnSql( Cake\Database\Schema\TableSchema $schema , string $name )

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
SQL fragment.

Throws

Cake\Database\Exception
when the column type is unknown

constraintSql()source public

constraintSql( Cake\Database\Schema\TableSchema $schema , string $name )

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.

Parameters

Cake\Database\Schema\TableSchema $schema
The table instance the column is in.
string $name
The name of the column.

Returns

string
SQL fragment.

convertColumnDescription()source public

convertColumnDescription( Cake\Database\Schema\TableSchema $schema , array $row )

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.

convertForeignKeyDescription()source public

convertForeignKeyDescription( Cake\Database\Schema\TableSchema $schema , array $row )

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.

convertIndexDescription()source public

convertIndexDescription( Cake\Database\Schema\TableSchema $schema , array $row )

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.

Parameters

Cake\Database\Schema\TableSchema $schema

The table object to append an index or constraint to.

array $row
The row data from describeIndexSql.

createTableSql()source public

createTableSql( Cake\Database\Schema\TableSchema $schema , array $columns , array $constraints , array $indexes )

Generate the SQL to create a table.

Parameters

Cake\Database\Schema\TableSchema $schema
Table instance.
array $columns
The columns to go inside the table.
array $constraints
The constraints for the table.
array $indexes
The indexes for the table.

Returns

array
SQL statements to create a table.

describeColumnSql()source public

describeColumnSql( string $tableName , array $config )

Generate the SQL to describe a table.

Parameters

string $tableName
The table name to get information on.
array $config
The connection configuration.

Returns

array
An array of (sql, params) to execute.

describeForeignKeySql()source public

describeForeignKeySql( string $tableName , array $config )

Generate the SQL to describe the foreign keys in a table.

Parameters

string $tableName
The table name to get information on.
array $config
The connection configuration.

Returns

array
An array of (sql, params) to execute.

describeIndexSql()source public

describeIndexSql( string $tableName , array $config )

Generate the SQL to describe the indexes in a table.

Parameters

string $tableName
The table name to get information on.
array $config
The connection configuration.

Returns

array
An array of (sql, params) to execute.

dropConstraintSql()source public

dropConstraintSql( Cake\Database\Schema\TableSchema $schema )

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

Parameters

Cake\Database\Schema\TableSchema $schema
The table instance the foreign key constraints are.

Returns

array
SQL fragment.

hasSequences()source public

hasSequences( )

Returns whether there is any table in this connection to SQLite containing sequences

Returns

boolean

indexSql()source public

indexSql( Cake\Database\Schema\TableSchema $schema , string $name )

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
SQL fragment.

listTablesSql()source public

listTablesSql( array $config )

Generate the SQL to list the tables.

Parameters

array $config

The connection configuration to use for getting tables from.

Returns

array
An array of (sql, params) to execute.

truncateTableSql()source public

truncateTableSql( Cake\Database\Schema\TableSchema $schema )

Generate the SQL to truncate a table.

Parameters

Cake\Database\Schema\TableSchema $schema
Table instance.

Returns

array
SQL statements to truncate a table.

Methods inherited from Cake\Database\Schema\BaseSchema

__construct()source public

__construct( Cake\Database\Driver $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\Driver $driver
The driver to use.

_convertConstraintColumns()source protected

_convertConstraintColumns( string|array $references )

Convert foreign key constraints references to a valid stringified list

Parameters

string|array $references
The referenced columns of a foreign key constraint statement

Returns

string

_convertOnClause()source protected

_convertOnClause( string $clause )

Convert string on clauses to the abstract ones.

Parameters

string $clause
The on clause to convert.

Returns

string|null

_foreignOnClause()source protected

_foreignOnClause( string|null $on )

Generate an ON clause for a foreign key.

Parameters

string|null $on
The on clause

Returns

string

convertOptionsDescription()source public

convertOptionsDescription( Cake\Database\Schema\TableSchema $schema , array $row )

Convert options data into table options.

Parameters

Cake\Database\Schema\TableSchema $schema
Table instance.
array $row
The row of data.

describeOptionsSql()source public

describeOptionsSql( string $tableName , array $config )

Generate the SQL to describe table options

Parameters

string $tableName
Table name.
array $config
The connection configuration.

Returns

array
SQL statements to get options for a table.

dropTableSql()source public

dropTableSql( Cake\Database\Schema\TableSchema $schema )

Generate the SQL to drop a table.

Parameters

Cake\Database\Schema\TableSchema $schema
Schema instance

Returns

array
SQL statements to drop a table.

Properties detail

$_constraintsIdMapsource

protected array

Array containing the foreign keys constraints names Necessary for composite foreign keys to be handled

[]

$_hasSequencessource

protected boolean

Whether there is any table in this connection to SQLite containing sequences.

© 2005–2017 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/3.4/class-Cake.Database.Schema.SqliteSchema.html