CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 5.0 Chiffon API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 5.0
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
      • Driver
      • Exception
      • Expression
      • Log
      • Query
      • Retry
      • Schema
      • Statement
      • Type
    • Datasource
    • Error
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

Class SqliteSchemaDialect

Schema management/reflection features for Sqlite

Namespace: Cake\Database\Schema

Property Summary

  • $_driver protected
    Cake\Database\Driver

    The driver instance being used.

  • $_hasSequences protected
    bool

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

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.

  • _convertColumn() protected

    Convert a column definition to the abstract types.

  • _convertConstraintColumns() protected

    Convert foreign key constraints references to a valid stringified list

  • _convertOnClause() protected

    Convert string on clauses to the abstract ones.

  • _defaultValue() protected

    Manipulate the default value.

  • _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() public

    Generate the SQL queries needed to add foreign key constraints to the table

  • columnSql() public

    Generate the SQL fragment for a single column in a table.

  • constraintSql() public

    Generate the SQL fragments for defining table constraints.

  • convertColumnDescription() public

    Convert field description results into abstract schema fields.

  • convertForeignKeyDescription() public

    Convert a foreign key description into constraints on the Table object.

  • convertIndexDescription() public

    Convert an index description results into abstract schema indexes or constraints.

  • convertOptionsDescription() public

    Convert options data into table options.

  • createTableSql() public

    Generate the SQL to create a table.

  • describeColumnSql() public

    Generate the SQL to describe a table.

  • describeForeignKeySql() public

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

  • describeIndexSql() public

    Generate the SQL to describe the indexes in a table.

  • describeOptionsSql() public

    Generate the SQL to describe table options

  • dropConstraintSql() public

    Generate the SQL queries needed to drop foreign key constraints from the table

  • dropTableSql() public

    Generate the SQL to drop a table.

  • hasSequences() public

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

  • indexSql() public

    Generate the SQL fragment for a single index in a table.

  • listTablesSql() public

    Generate the SQL to list the tables and views.

  • listTablesWithoutViewsSql() public

    Generate the SQL to list the tables, excluding all views.

  • normalizePossiblyQuotedIdentifier() protected

    Removes possible escape characters and surrounding quotes from identifiers.

  • possiblyQuotedIdentifierRegex() protected

    Generates a regular expression to match identifiers that may or may not be quoted with any of the supported quotes.

  • truncateTableSql() public

    Generate the SQL to truncate a table.

Method Detail

__construct() ¶ 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.

_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

_convertColumn() ¶ protected

_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.

Parameters
string $column

The column type + length

Returns
array<string, mixed>
Throws
Cake\Database\Exception\DatabaseException
when unable to parse column type

_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

_defaultValue() ¶ protected

_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.

Parameters
string|int|null $default

The default value.

Returns
string|int|null

_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() ¶ public

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

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the foreign key constraints are.

Returns
array

columnSql() ¶ 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
Throws
Cake\Database\Exception\DatabaseException
when the column type is unknown

constraintSql() ¶ public

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.

Parameters
Cake\Database\Schema\TableSchema $schema

The table instance the column is in.

string $name

The name of the column.

Returns
string

convertColumnDescription() ¶ public

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

Convert field description results into abstract schema fields.

Parameters
Cake\Database\Schema\TableSchema $schema
array $row
Returns
void

convertForeignKeyDescription() ¶ 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
array $row
Returns
void

convertIndexDescription() ¶ public

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.

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() ¶ 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
array<string> $columns
array<string> $constraints
array<string> $indexes
Returns
array<string>

describeColumnSql() ¶ public

describeColumnSql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe a table.

Parameters
string $tableName
array<string, mixed> $config
Returns
array

describeForeignKeySql() ¶ public

describeForeignKeySql(string $tableName, array<string, mixed> $config): array

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

Parameters
string $tableName
array<string, mixed> $config
Returns
array

describeIndexSql() ¶ public

describeIndexSql(string $tableName, array<string, mixed> $config): array

Generate the SQL to describe the indexes in a table.

Parameters
string $tableName
array<string, mixed> $config
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() ¶ public

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

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

hasSequences() ¶ public

hasSequences(): bool

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

Returns
bool

indexSql() ¶ 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
string $name
Returns
string

listTablesSql() ¶ public

listTablesSql(array<string, mixed> $config): array

Generate the SQL to list the tables and views.

Parameters
array<string, mixed> $config

The connection configuration to use for getting tables from.

Returns
array

listTablesWithoutViewsSql() ¶ public

listTablesWithoutViewsSql(array<string, mixed> $config): array<mixed>

Generate the SQL to list the tables, excluding all views.

Parameters
array<string, mixed> $config

The connection configuration to use for getting tables from.

Returns
array<mixed>

normalizePossiblyQuotedIdentifier() ¶ protected

normalizePossiblyQuotedIdentifier(string $value): string

Removes possible escape characters and surrounding quotes from identifiers.

Parameters
string $value

The identifier to normalize.

Returns
string

possiblyQuotedIdentifierRegex() ¶ protected

possiblyQuotedIdentifierRegex(string $identifier): string

Generates a regular expression to match identifiers that may or may not be quoted with any of the supported quotes.

Parameters
string $identifier

The identifier to match.

Returns
string

truncateTableSql() ¶ public

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

Generate the SQL to truncate a table.

Parameters
Cake\Database\Schema\TableSchema $schema
Returns
array

Property Detail

$_driver ¶ protected

The driver instance being used.

Type
Cake\Database\Driver

$_hasSequences ¶ protected

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

Type
bool
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs