## Apache Zeta Components Manual :: Docs For Class ezcDbSchemaMysqlWriter

### DatabaseSchema::ezcDbSchemaMysqlWriter

### Class ezcDbSchemaMysqlWriter

Handler for storing database schemas and applying differences that uses MySQL as backend.

Source for this file: /DatabaseSchema/src/handlers/mysql/writer.php

### Implements interfaces:

- ezcDbSchemaDbWriter
- ezcDbSchemaDiffDbWriter

    ezcDbSchemaCommonSqlWriter
       |
       --ezcDbSchemaMysqlWriter

Version: | //autogentag//

### Inherited Member Variables

From ezcDbSchemaCommonSqlWriter
protected | `ezcDbSchemaCommonSqlWriter::$queries`
protected | `ezcDbSchemaCommonSqlWriter::$schema`

### Method Summary

public void | `applyDiffToDb( $db , $dbSchemaDiff )` Applies the differences defined in $dbSchemaDiff to the database referenced by $db.
public array(string) | `convertDiffToDDL( $dbSchemaDiff )` Returns the differences definition in $dbSchema as database specific SQL DDL queries.
protected string | `convertFromGenericType( $fieldDefinition )` Converts the generic field type contained in $fieldDefinition to a database specific field definition.
protected void | `generateAddFieldSql( $tableName , $fieldName , $fieldDefinition )` Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition.
protected 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 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 void | `generateDiffSchemaTableAsSql( $tableName , $tableDiff )` Generates queries to upgrade a the table $tableName with the differences in $tableDiff.
protected void | `generateDropFieldSql( $tableName , $fieldName )` Adds a "alter table" query to drop the field $fieldName from $tableName.
protected 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 void | `generateDropTableSql( $tableName )` Adds a "drop table" query for the table $tableName to the internal list of queries.
protected string | `generateFieldSql( $fieldName , $fieldDefinition )` Returns a column definition for $fieldName with definition $fieldDefinition.
public int | `getDiffWriterType( )` Returns what type of schema difference writer this class implements.
public int | `getWriterType( )` Returns what type of schema writer this class implements.

### Inherited Methods

From ezcDbSchemaCommonSqlWriter
public array(string) | `ezcDbSchemaCommonSqlWriter::convertToDDL()` Returns an array with SQL DDL statements that creates the database definition in $dbSchema
protected abstract void | `ezcDbSchemaCommonSqlWriter::generateAddFieldSql()` Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition.
protected abstract void | `ezcDbSchemaCommonSqlWriter::generateAddIndexSql()` 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 | `ezcDbSchemaCommonSqlWriter::generateChangeFieldSql()` Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition.
protected void | `ezcDbSchemaCommonSqlWriter::generateCreateTableSql()` Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries.
protected string | `ezcDbSchemaCommonSqlWriter::generateCreateTableSqlStatement()` Returns a "CREATE TABLE" SQL statement part for the table $tableName.
protected string | `ezcDbSchemaCommonSqlWriter::generateDefault()` Returns an appropriate default value for $type with $value.
protected void | `ezcDbSchemaCommonSqlWriter::generateDiffSchemaAsSql()` Generates queries to upgrade an existing database with the changes stored in $this->diffSchema.
protected void | `ezcDbSchemaCommonSqlWriter::generateDiffSchemaTableAsSql()` Generates queries to upgrade a the table $tableName with the differences in $tableDiff.
protected abstract void | `ezcDbSchemaCommonSqlWriter::generateDropFieldSql()` Adds a "alter table" query to drop the field $fieldName from $tableName.
protected abstract void | `ezcDbSchemaCommonSqlWriter::generateDropIndexSql()` Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries.
protected abstract void | `ezcDbSchemaCommonSqlWriter::generateDropTableSql()` Adds a "drop table" query for the table $tableName to the internal list of queries.
protected abstract string | `ezcDbSchemaCommonSqlWriter::generateFieldSql()` Returns a column definition for $fieldName with definition $fieldDefinition.
protected void | `ezcDbSchemaCommonSqlWriter::generateSchemaAsSql()` Creates SQL DDL statements from a schema definitin.
public int | `ezcDbSchemaCommonSqlWriter::getWriterType()` Returns what type of schema writer this class implements.
public boolean | `ezcDbSchemaCommonSqlWriter::isQueryAllowed()` Checks if the query is allowed.
public void | `ezcDbSchemaCommonSqlWriter::saveToDb()` Creates the tables contained in $schema in the database that is related to $db

### Methods

#### applyDiffToDb

void applyDiffToDb( $db , ezcDbSchemaDiff $dbSchemaDiff )

Applies the differences defined in $dbSchemaDiff to the database referenced by $db.

This method uses convertDiffToDDL to create SQL for the differences and then executes the returned SQL statements on the database handler $db.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$db` | ezcDbHandler |
`$dbSchemaDiff` | ezcDbSchemaDiff |

##### Implementation of:

Method | Description
--- | ---
`ezcDbSchemaDiffDbWriter::applyDiffToDb()` | Applies the differences contained in $schemaDiff to the database handler $db

#### convertDiffToDDL

array(string) convertDiffToDDL( ezcDbSchemaDiff $dbSchemaDiff )

Returns the differences definition in $dbSchema as database specific SQL DDL queries.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$dbSchemaDiff` | ezcDbSchemaDiff |

##### Implementation of:

Method | Description
--- | ---
`ezcDbSchemaDiffDbWriter::convertDiffToDDL()` | Returns an array with SQL DDL statements from the differences from $schemaDiff

#### convertFromGenericType

string convertFromGenericType( ezcDbSchemaField $fieldDefinition )

Converts the generic field type contained in $fieldDefinition to a database specific field definition.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$fieldDefinition` | ezcDbSchemaField |

#### generateAddFieldSql

void generateAddFieldSql( string $tableName , string $fieldName , ezcDbSchemaField $fieldDefinition )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateAddFieldSql()` | Adds a "alter table" query to add the field $fieldName to $tableName with the definition $fieldDefinition.

#### generateAddIndexSql

void generateAddIndexSql( string $tableName , string $indexName , ezcDbSchemaIndex $indexDefinition )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::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

void generateChangeFieldSql( string $tableName , string $fieldName , ezcDbSchemaField $fieldDefinition )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateChangeFieldSql()` | Adds a "alter table" query to change the field $fieldName to $tableName with the definition $fieldDefinition.

#### generateCreateTableSql

void generateCreateTableSql( string $tableName , ezcDbSchemaTable $tableDefinition )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateCreateTableSql()` | Adds a "create table" query for the table $tableName with definition $tableDefinition to the internal list of queries.

#### generateCreateTableSqlStatement

string generateCreateTableSqlStatement( string $tableName )

Returns a "CREATE TABLE" SQL statement part for the table $tableName.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$tableName` | string |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateCreateTableSqlStatement()` | Returns a "CREATE TABLE" SQL statement part for the table $tableName.

#### generateDiffSchemaTableAsSql

void generateDiffSchemaTableAsSql( string $tableName , ezcDbSchemaTableDiff $tableDiff )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateDiffSchemaTableAsSql()` | Generates queries to upgrade a the table $tableName with the differences in $tableDiff.

#### generateDropFieldSql

void generateDropFieldSql( string $tableName , string $fieldName )

Adds a "alter table" query to drop the field $fieldName from $tableName.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$tableName` | string |
`$fieldName` | string |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateDropFieldSql()` | Adds a "alter table" query to drop the field $fieldName from $tableName.

#### generateDropIndexSql

void generateDropIndexSql( string $tableName , string $indexName )

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 |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateDropIndexSql()` | Adds a "alter table" query to remote the index $indexName from the table $tableName to the internal list of queries.

#### generateDropTableSql

void generateDropTableSql( string $tableName )

Adds a "drop table" query for the table $tableName to the internal list of queries.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$tableName` | string |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateDropTableSql()` | Adds a "drop table" query for the table $tableName to the internal list of queries.

#### generateFieldSql

string generateFieldSql( string $fieldName , ezcDbSchemaField $fieldDefinition )

Returns a column definition for $fieldName with definition $fieldDefinition.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$fieldName` | string |
`$fieldDefinition` | ezcDbSchemaField |

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::generateFieldSql()` | Returns a column definition for $fieldName with definition $fieldDefinition.

#### getDiffWriterType

int getDiffWriterType( )

Returns what type of schema difference writer this class implements.

This method always returns ezcDbSchema::DATABASE

##### Implementation of:

Method | Description
--- | ---
`ezcDbSchemaDiffWriter::getDiffWriterType()` | Returns what type of schema difference writer this class implements.

#### getWriterType

int getWriterType( )

Returns what type of schema writer this class implements.

This method always returns ezcDbSchema::DATABASE

##### Redefinition of:

Method | Description
--- | ---
`ezcDbSchemaCommonSqlWriter::getWriterType()` | Returns what type of schema writer this class implements.

##### Implementation of:

Method | Description
--- | ---
`ezcDbSchemaWriter::getWriterType()` | Returns what type of schema writer this class implements.

Documentation generated by phpDocumentor 1.4.3