Zeta Components - high quality PHP components

Zeta Components Manual :: Docs For Class ezcDbSchemaOracleWriter

DatabaseSchema::ezcDbSchemaOracleWriter

Class ezcDbSchemaOracleWriter

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

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

Implements interfaces:

ezcDbSchemaCommonSqlWriter
   |
   --ezcDbSchemaOracleWriter
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 , [ $db = null] )
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 generateAdditionalDropSequenceStatements( $dbSchemaDiff , $db )
Generate additional drop sequence statements
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 generateDefault( $type , $value )
Returns an appropriate default value for $type with $value.
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 , $autoincrementField )
Returns a column definition for $fieldName with definition $fieldDefinition.
public int getDiffWriterType( )
Returns what type of schema difference writer this class implements.
public boolean isQueryAllowed( $db , $query )
Checks if query allowed.

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 , [ $db = null] )

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

Parameters:
Name Type Description
$dbSchemaDiff ezcDbSchemaDiff
$db ezcDbHandler
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

generateAdditionalDropSequenceStatements

void generateAdditionalDropSequenceStatements( ezcDbSchemaDiff $dbSchemaDiff , $db )

Generate additional drop sequence statements

Some sequences might not be dropped automatically, this method generates additional DROP SEQUENCE queries for those.

Since Oracle only allows sequence identifiers up to 30 characters sequences for long table / column names may be shortened. In this case the sequence name does not started with the table name any more, thus does not get dropped together with the table automatically.

This method requires a DB connection to check which sequences have been defined in the database, because the information about fields is not available otherwise.

Parameters:
Name Type Description
$dbSchemaDiff ezcDbSchemaDiff
$db ezcDbHandler

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.

Adds additional CREATE queries for sequences and triggers to implement autoincrement fields that not supported in Oracle directly.

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.

generateDefault

string generateDefault( string $type , mixed $value )

Returns an appropriate default value for $type with $value.

Parameters:
Name Type Description
$type string
$value mixed
Redefinition of:
Method Description
ezcDbSchemaCommonSqlWriter::generateDefault() Returns an appropriate default value for $type with $value.

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 , string $autoincrementField )

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

Parameters:
Name Type Description
$fieldName string
$fieldDefinition ezcDbSchemaField
$autoincrementField string
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.

isQueryAllowed

boolean isQueryAllowed( $db , string $query )

Checks if query 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
Redefinition of:
Method Description
ezcDbSchemaCommonSqlWriter::isQueryAllowed() Checks if the query is allowed.
Implementation of:
Method Description
ezcDbSchemaDbWriter::isQueryAllowed() Checks if the query is allowed.
Documentation generated by phpDocumentor 1.4.3