Zeta Components Manual :: Docs For Class ezcDbSchemaCommonSqlWriter
DatabaseSchema::ezcDbSchemaCommonSqlWriter
Class ezcDbSchemaCommonSqlWriter
An abstract class that implements some common functionality required by multiple database backends.
Source for this file: /DatabaseSchema/src/handlers/common_sql_writer.php
Implements interfaces:
Version: | //autogentag// |
Descendants
Child Class | Description |
---|---|
ezcDbSchemaMysqlWriter | Handler for storing database schemas and applying differences that uses MySQL as backend. |
ezcDbSchemaPgsqlWriter | Handler for storing database schemas and applying differences that uses PostgreSQL as backend. |
ezcDbSchemaSqliteWriter | Handler for storing database schemas and applying differences that uses SQLite as backend. |
ezcDbSchemaOracleWriter | Handler for storing database schemas and applying differences that uses Oracle as backend. |
Member Variables
protected array(string) |
$queries
Stores a list of queries that is generated by the various Database writing backends. |
protected ezcDbSchema |
$schema
Stores the schema definition where the generators operate on. |
Method Summary
public array(string) |
convertToDDL(
$dbSchema
)
Returns an array with SQL DDL statements that creates the database definition in $dbSchema |
protected abstract void |
generateAddFieldSql(
$tableName
, $fieldName
, $fieldDefinition
)
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition. |
protected abstract void |
generateAddIndexSql(
$tableName
, $indexName
, $indexDefinition
)
Adds a "alter table" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries |
protected abstract void |
generateChangeFieldSql(
$tableName
, $fieldName
, $fieldDefinition
)
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition. |
protected void |
generateCreateTableSql(
$tableName
, $tableDefinition
)
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries. |
protected string |
generateCreateTableSqlStatement(
$tableName
)
Returns a "CREATE TABLE" SQL statement part for the table $tableName. |
protected string |
generateDefault(
$type
, $value
)
Returns an appropriate default value for $type with $value. |
protected void |
generateDiffSchemaAsSql(
)
Generates queries to upgrade an existing database with the changes stored in $this->diffSchema. |
protected void |
generateDiffSchemaTableAsSql(
$tableName
, $tableDiff
)
Generates queries to upgrade a the table $tableName with the differences in $tableDiff. |
protected abstract void |
generateDropFieldSql(
$tableName
, $fieldName
)
Adds a "alter table" query to drop the field $fieldName from $tableName. |
protected abstract void |
generateDropIndexSql(
$tableName
, $indexName
)
Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries. |
protected abstract void |
generateDropTableSql(
$tableName
)
Adds a "drop table" query for the table $tableName to the internal list of queries. |
protected abstract string |
generateFieldSql(
$fieldName
, $fieldDefinition
)
Returns a column definition for $fieldName with definition $fieldDefinition. |
protected void |
generateSchemaAsSql(
)
Creates SQL DDL statements from a schema definitin. |
public int |
getWriterType(
)
Returns what type of schema writer this class implements. |
public boolean |
isQueryAllowed(
$db
, $query
)
Checks if the query is allowed. |
public void |
saveToDb(
$db
, $dbSchema
)
Creates the tables contained in $schema in the database that is related to $db |
Methods
convertToDDL
Returns an array with SQL DDL statements that creates the database definition in $dbSchema
Converts the schema definition contained in $dbSchema to DDL SQL. This SQL can be used to create tables in an existing database according to the definition. The SQL queries are returned as an array.
Parameters:
Name | Type | Description |
---|---|---|
$dbSchema |
ezcDbSchema |
Implementation of:
Method | Description |
---|---|
ezcDbSchemaDbWriter::convertToDDL() |
Returns an array with SQL DDL statements that creates the database definition in $dbSchema |
generateAddFieldSql
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$fieldName |
string | |
$fieldDefinition |
ezcDbSchemaField |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateAddFieldSql() |
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaPgsqlWriter::generateAddFieldSql() |
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaSqliteWriter::generateAddFieldSql() |
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaOracleWriter::generateAddFieldSql() |
Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition. |
generateAddIndexSql
Adds a "alter table" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$indexName |
string | |
$indexDefinition |
ezcDbSchemaIndex |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateAddIndexSql() |
Adds a "alter table" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries |
ezcDbSchemaPgsqlWriter::generateAddIndexSql() |
Adds a "alter table" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries |
ezcDbSchemaSqliteWriter::generateAddIndexSql() |
Adds a "create index" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries |
ezcDbSchemaOracleWriter::generateAddIndexSql() |
Adds a "alter table" query to add the index $indexName to the table $tableName with definition $indexDefinition to the internal list of queries |
generateChangeFieldSql
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$fieldName |
string | |
$fieldDefinition |
ezcDbSchemaField |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateChangeFieldSql() |
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaPgsqlWriter::generateChangeFieldSql() |
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaSqliteWriter::generateChangeFieldSql() |
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition. |
ezcDbSchemaOracleWriter::generateChangeFieldSql() |
Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition. |
generateCreateTableSql
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$tableDefinition |
ezcDbSchemaTable |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateCreateTableSql() |
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries. |
ezcDbSchemaPgsqlWriter::generateCreateTableSql() |
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries. |
ezcDbSchemaSqliteWriter::generateCreateTableSql() |
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries. |
ezcDbSchemaOracleWriter::generateCreateTableSql() |
Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries. |
generateCreateTableSqlStatement
Returns a "CREATE TABLE" SQL statement part for the table $tableName.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateCreateTableSqlStatement() |
Returns a "CREATE TABLE" SQL statement part for the table $tableName. |
ezcDbSchemaPgsqlWriter::generateCreateTableSqlStatement() |
Returns a "CREATE TABLE" SQL statement part for the table $tableName. |
ezcDbSchemaSqliteWriter::generateCreateTableSqlStatement() |
Returns a "CREATE TABLE" SQL statement part for the table $tableName. |
generateDefault
Returns an appropriate default value for $type with $value.
Parameters:
Name | Type | Description |
---|---|---|
$type |
string | |
$value |
mixed |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaSqliteWriter::generateDefault() |
Returns an appropriate default value for $type with $value. |
ezcDbSchemaOracleWriter::generateDefault() |
Returns an appropriate default value for $type with $value. |
generateDiffSchemaAsSql
Generates queries to upgrade an existing database with the changes stored in $this->diffSchema.
This method generates queries to migrate a database to a new version with the changes that are stored in the $this->diffSchema property. It will call different subfunctions for the different types of changes, and those functions will add queries to the internal list of queries that is stored in $this->queries.
generateDiffSchemaTableAsSql
Generates queries to upgrade a the table $tableName with the differences in $tableDiff.
This method generates queries to migrate a table to a new version with the changes that are stored in the $tableDiff property. It will call different subfunctions for the different types of changes, and those functions will add queries to the internal list of queries that is stored in $this->queries.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$tableDiff |
ezcDbSchemaTableDiff |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateDiffSchemaTableAsSql() |
Generates queries to upgrade a the table $tableName with the differences in $tableDiff. |
ezcDbSchemaPgsqlWriter::generateDiffSchemaTableAsSql() |
Generates queries to upgrade a the table $tableName with the differences in $tableDiff. |
ezcDbSchemaSqliteWriter::generateDiffSchemaTableAsSql() |
Generates queries to upgrade a the table $tableName with the differences in $tableDiff. |
ezcDbSchemaOracleWriter::generateDiffSchemaTableAsSql() |
Generates queries to upgrade a the table $tableName with the differences in $tableDiff. |
generateDropFieldSql
Adds a "alter table" query to drop the field $fieldName from $tableName.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$fieldName |
string |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateDropFieldSql() |
Adds a "alter table" query to drop the field $fieldName from $tableName. |
ezcDbSchemaPgsqlWriter::generateDropFieldSql() |
Adds a "alter table" query to drop the field $fieldName from $tableName. |
ezcDbSchemaSqliteWriter::generateDropFieldSql() |
Adds a "alter table" query to drop the field $fieldName from $tableName. |
ezcDbSchemaOracleWriter::generateDropFieldSql() |
Adds a "alter table" query to drop the field $fieldName from $tableName. |
generateDropIndexSql
Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string | |
$indexName |
string |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateDropIndexSql() |
Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries. |
ezcDbSchemaPgsqlWriter::generateDropIndexSql() |
Adds a "alter table" query to remove the index $indexName from the table $tableName to the internal list of queries. |
ezcDbSchemaSqliteWriter::generateDropIndexSql() |
Adds a "alter table" query to revote the index $indexName from the table $tableName to the internal list of queries. |
ezcDbSchemaOracleWriter::generateDropIndexSql() |
Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries. |
generateDropTableSql
Adds a "drop table" query for the table $tableName to the internal list of queries.
Parameters:
Name | Type | Description |
---|---|---|
$tableName |
string |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateDropTableSql() |
Adds a "drop table" query for the table $tableName to the internal list of queries. |
ezcDbSchemaPgsqlWriter::generateDropTableSql() |
Adds a "drop table" query for the table $tableName to the internal list of queries. |
ezcDbSchemaSqliteWriter::generateDropTableSql() |
Adds a "drop table" query for the table $tableName to the internal list of queries. |
ezcDbSchemaOracleWriter::generateDropTableSql() |
Adds a "drop table" query for the table $tableName to the internal list of queries. |
generateFieldSql
Returns a column definition for $fieldName with definition $fieldDefinition.
Parameters:
Name | Type | Description |
---|---|---|
$fieldName |
string | |
$fieldDefinition |
ezcDbSchemaField |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::generateFieldSql() |
Returns a column definition for $fieldName with definition $fieldDefinition. |
ezcDbSchemaPgsqlWriter::generateFieldSql() |
Returns a column definition for $fieldName with definition $fieldDefinition. |
ezcDbSchemaSqliteWriter::generateFieldSql() |
Returns a column definition for $fieldName with definition $fieldDefinition. |
ezcDbSchemaOracleWriter::generateFieldSql() |
Returns a column definition for $fieldName with definition $fieldDefinition. |
generateSchemaAsSql
Creates SQL DDL statements from a schema definitin.
Loops over the tables in the schema definition in $this->schema and creates SQL SSL statements for this which it stores internally into the $this->queries array.
getWriterType
Returns what type of schema writer this class implements.
This method always returns ezcDbSchema::DATABASE
Implementation of:
Method | Description |
---|---|
ezcDbSchemaWriter::getWriterType() |
Returns what type of schema writer this class implements. |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaMysqlWriter::getWriterType() |
Returns what type of schema writer this class implements. |
ezcDbSchemaSqliteWriter::getWriterType() |
Returns what type of schema writer this class implements. |
isQueryAllowed
Checks if the query is allowed.
Perform testing if table exist for DROP TABLE query to avoid stoping execution while try to drop not existent table.
Parameters:
Name | Type | Description |
---|---|---|
$db |
ezcDbHandler | |
$query |
string |
Implementation of:
Method | Description |
---|---|
ezcDbSchemaDbWriter::isQueryAllowed() |
Checks if the query is allowed. |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaPgsqlWriter::isQueryAllowed() |
Checks if certain query allowed. |
ezcDbSchemaSqliteWriter::isQueryAllowed() |
Checks if certain query allowed. |
ezcDbSchemaOracleWriter::isQueryAllowed() |
Checks if query allowed. |
saveToDb
Creates the tables contained in $schema in the database that is related to $db
This method takes the table definitions from $schema and will create the tables according to this definition in the database that is references by the $db handler. If tables with the same name as contained in the definitions already exist they will be removed and recreated with the new definition.
Parameters:
Name | Type | Description |
---|---|---|
$db |
ezcDbHandler | |
$dbSchema |
ezcDbSchema |
Implementation of:
Method | Description |
---|---|
ezcDbSchemaDbWriter::saveToDb() |
Creates the tables contained in $schema in the database that is related to $db |
Redefined in descendants as:
Method | Description |
---|---|
ezcDbSchemaPgsqlWriter::saveToDb() |
Creates tables defined in $dbSchema in the database referenced by $db. |