mirror of
https://github.com/zoe-may/TDoG-Skin.git
synced 2024-11-24 22:02:22 +08:00
188 lines
5.0 KiB
PHP
188 lines
5.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Doctrine\DBAL\Schema;
|
||
|
|
||
|
use Doctrine\DBAL\Exception;
|
||
|
|
||
|
use function implode;
|
||
|
use function sprintf;
|
||
|
|
||
|
/**
|
||
|
* @psalm-immutable
|
||
|
*/
|
||
|
class SchemaException extends Exception
|
||
|
{
|
||
|
public const TABLE_DOESNT_EXIST = 10;
|
||
|
public const TABLE_ALREADY_EXISTS = 20;
|
||
|
public const COLUMN_DOESNT_EXIST = 30;
|
||
|
public const COLUMN_ALREADY_EXISTS = 40;
|
||
|
public const INDEX_DOESNT_EXIST = 50;
|
||
|
public const INDEX_ALREADY_EXISTS = 60;
|
||
|
public const SEQUENCE_DOENST_EXIST = 70;
|
||
|
public const SEQUENCE_ALREADY_EXISTS = 80;
|
||
|
public const INDEX_INVALID_NAME = 90;
|
||
|
public const FOREIGNKEY_DOESNT_EXIST = 100;
|
||
|
public const NAMESPACE_ALREADY_EXISTS = 110;
|
||
|
|
||
|
/**
|
||
|
* @param string $tableName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function tableDoesNotExist($tableName)
|
||
|
{
|
||
|
return new self("There is no table with name '" . $tableName . "' in the schema.", self::TABLE_DOESNT_EXIST);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $indexName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function indexNameInvalid($indexName)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf('Invalid index-name %s given, has to be [a-zA-Z0-9_]', $indexName),
|
||
|
self::INDEX_INVALID_NAME
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $indexName
|
||
|
* @param string $table
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function indexDoesNotExist($indexName, $table)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("Index '%s' does not exist on table '%s'.", $indexName, $table),
|
||
|
self::INDEX_DOESNT_EXIST
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $indexName
|
||
|
* @param string $table
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function indexAlreadyExists($indexName, $table)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("An index with name '%s' was already defined on table '%s'.", $indexName, $table),
|
||
|
self::INDEX_ALREADY_EXISTS
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $columnName
|
||
|
* @param string $table
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function columnDoesNotExist($columnName, $table)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("There is no column with name '%s' on table '%s'.", $columnName, $table),
|
||
|
self::COLUMN_DOESNT_EXIST
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $namespaceName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function namespaceAlreadyExists($namespaceName)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("The namespace with name '%s' already exists.", $namespaceName),
|
||
|
self::NAMESPACE_ALREADY_EXISTS
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $tableName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function tableAlreadyExists($tableName)
|
||
|
{
|
||
|
return new self("The table with name '" . $tableName . "' already exists.", self::TABLE_ALREADY_EXISTS);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $tableName
|
||
|
* @param string $columnName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function columnAlreadyExists($tableName, $columnName)
|
||
|
{
|
||
|
return new self(
|
||
|
"The column '" . $columnName . "' on table '" . $tableName . "' already exists.",
|
||
|
self::COLUMN_ALREADY_EXISTS
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $name
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function sequenceAlreadyExists($name)
|
||
|
{
|
||
|
return new self("The sequence '" . $name . "' already exists.", self::SEQUENCE_ALREADY_EXISTS);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $name
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function sequenceDoesNotExist($name)
|
||
|
{
|
||
|
return new self("There exists no sequence with the name '" . $name . "'.", self::SEQUENCE_DOENST_EXIST);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $fkName
|
||
|
* @param string $table
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function foreignKeyDoesNotExist($fkName, $table)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("There exists no foreign key with the name '%s' on table '%s'.", $fkName, $table),
|
||
|
self::FOREIGNKEY_DOESNT_EXIST
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function namedForeignKeyRequired(Table $localTable, ForeignKeyConstraint $foreignKey)
|
||
|
{
|
||
|
return new self(
|
||
|
'The performed schema operation on ' . $localTable->getName() . ' requires a named foreign key, ' .
|
||
|
'but the given foreign key from (' . implode(', ', $foreignKey->getColumns()) . ') onto foreign table ' .
|
||
|
"'" . $foreignKey->getForeignTableName() . "' (" . implode(', ', $foreignKey->getForeignColumns()) . ')' .
|
||
|
' is currently unnamed.'
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string $changeName
|
||
|
*
|
||
|
* @return SchemaException
|
||
|
*/
|
||
|
public static function alterTableChangeNotSupported($changeName)
|
||
|
{
|
||
|
return new self(
|
||
|
sprintf("Alter table change not supported, given '%s'", $changeName)
|
||
|
);
|
||
|
}
|
||
|
}
|