Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/Db/Adapter/AbstractAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -972,10 +972,10 @@ public function castToBool($value): mixed
protected function getDefaultValueDefinition(mixed $default, ?string $columnType = null): string
{
$datetimeTypes = [
static::PHINX_TYPE_DATETIME,
static::PHINX_TYPE_TIMESTAMP,
static::PHINX_TYPE_TIME,
static::PHINX_TYPE_DATE,
static::TYPE_DATETIME,
static::TYPE_TIMESTAMP,
static::TYPE_TIME,
static::TYPE_DATE,
];

if ($default instanceof Literal) {
Expand All @@ -990,7 +990,7 @@ protected function getDefaultValueDefinition(mixed $default, ?string $columnType
$default = $this->quoteString($default);
} elseif (is_bool($default)) {
$default = $this->castToBool($default);
} elseif ($default !== null && $columnType === static::PHINX_TYPE_BOOLEAN) {
} elseif ($default !== null && $columnType === static::TYPE_BOOLEAN) {
$default = $this->castToBool((bool)$default);
}

Expand Down
196 changes: 161 additions & 35 deletions src/Db/Adapter/AdapterInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,51 +27,177 @@
*/
interface AdapterInterface
{
public const PHINX_TYPE_STRING = TableSchemaInterface::TYPE_STRING;
public const PHINX_TYPE_CHAR = TableSchemaInterface::TYPE_CHAR;
public const PHINX_TYPE_TEXT = TableSchemaInterface::TYPE_TEXT;
public const PHINX_TYPE_INTEGER = TableSchemaInterface::TYPE_INTEGER;
public const PHINX_TYPE_TINY_INTEGER = TableSchemaInterface::TYPE_TINYINTEGER;
public const PHINX_TYPE_SMALL_INTEGER = TableSchemaInterface::TYPE_SMALLINTEGER;
public const PHINX_TYPE_BIG_INTEGER = TableSchemaInterface::TYPE_BIGINTEGER;
public const PHINX_TYPE_FLOAT = TableSchemaInterface::TYPE_FLOAT;
public const PHINX_TYPE_DECIMAL = TableSchemaInterface::TYPE_DECIMAL;
public const PHINX_TYPE_DATETIME = TableSchemaInterface::TYPE_DATETIME;
public const PHINX_TYPE_TIMESTAMP = TableSchemaInterface::TYPE_TIMESTAMP;
public const PHINX_TYPE_TIME = TableSchemaInterface::TYPE_TIME;
public const PHINX_TYPE_DATE = TableSchemaInterface::TYPE_DATE;
public const PHINX_TYPE_BINARY = TableSchemaInterface::TYPE_BINARY;
public const PHINX_TYPE_BINARYUUID = TableSchemaInterface::TYPE_BINARY_UUID;
public const PHINX_TYPE_BOOLEAN = TableSchemaInterface::TYPE_BOOLEAN;
public const PHINX_TYPE_JSON = TableSchemaInterface::TYPE_JSON;
public const TYPE_STRING = TableSchemaInterface::TYPE_STRING;
public const TYPE_CHAR = TableSchemaInterface::TYPE_CHAR;
public const TYPE_TEXT = TableSchemaInterface::TYPE_TEXT;
public const TYPE_INTEGER = TableSchemaInterface::TYPE_INTEGER;
public const TYPE_TINYINTEGER = TableSchemaInterface::TYPE_TINYINTEGER;
public const TYPE_SMALLINTEGER = TableSchemaInterface::TYPE_SMALLINTEGER;
public const TYPE_BIGINTEGER = TableSchemaInterface::TYPE_BIGINTEGER;
public const TYPE_FLOAT = TableSchemaInterface::TYPE_FLOAT;
public const TYPE_DECIMAL = TableSchemaInterface::TYPE_DECIMAL;
public const TYPE_DATETIME = TableSchemaInterface::TYPE_DATETIME;
public const TYPE_TIMESTAMP = TableSchemaInterface::TYPE_TIMESTAMP;
public const TYPE_TIME = TableSchemaInterface::TYPE_TIME;
public const TYPE_DATE = TableSchemaInterface::TYPE_DATE;
public const TYPE_BINARY = TableSchemaInterface::TYPE_BINARY;
public const TYPE_BINARY_UUID = TableSchemaInterface::TYPE_BINARY_UUID;
public const TYPE_BOOLEAN = TableSchemaInterface::TYPE_BOOLEAN;
public const TYPE_JSON = TableSchemaInterface::TYPE_JSON;
public const TYPE_UUID = TableSchemaInterface::TYPE_UUID;
public const TYPE_NATIVE_UUID = TableSchemaInterface::TYPE_NATIVE_UUID;

// Geospatial database types
public const TYPE_GEOMETRY = TableSchemaInterface::TYPE_GEOMETRY;
public const TYPE_POINT = TableSchemaInterface::TYPE_POINT;
public const TYPE_LINESTRING = TableSchemaInterface::TYPE_LINESTRING;
public const TYPE_POLYGON = TableSchemaInterface::TYPE_POLYGON;

public const TYPES_GEOSPATIAL = [
self::TYPE_GEOMETRY,
self::TYPE_POINT,
self::TYPE_LINESTRING,
self::TYPE_POLYGON,
];

// only for mysql so far
public const TYPE_YEAR = TableSchemaInterface::TYPE_YEAR;

// only for postgresql so far
public const TYPE_CIDR = TableSchemaInterface::TYPE_CIDR;
public const TYPE_INET = TableSchemaInterface::TYPE_INET;
public const TYPE_MACADDR = TableSchemaInterface::TYPE_MACADDR;
public const TYPE_INTERVAL = TableSchemaInterface::TYPE_INTERVAL;

/**
* @deprecated 5.0.0 Use TYPE_STRING instead.
*/
public const PHINX_TYPE_STRING = self::TYPE_STRING;
/**
* @deprecated 5.0.0 Use TYPE_CHAR instead.
*/
public const PHINX_TYPE_CHAR = self::TYPE_CHAR;
/**
* @deprecated 5.0.0 Use TYPE_TEXT instead.
*/
public const PHINX_TYPE_TEXT = self::TYPE_TEXT;
/**
* @deprecated 5.0.0 Use TYPE_INTEGER instead.
*/
public const PHINX_TYPE_INTEGER = self::TYPE_INTEGER;
/**
* @deprecated 5.0.0 Use TYPE_TINYINTEGER instead.
*/
public const PHINX_TYPE_TINY_INTEGER = self::TYPE_TINYINTEGER;
/**
* @deprecated 5.0.0 Use TYPE_SMALLINTEGER instead.
*/
public const PHINX_TYPE_SMALL_INTEGER = self::TYPE_SMALLINTEGER;
/**
* @deprecated 5.0.0 Use TYPE_BIGINTEGER instead.
*/
public const PHINX_TYPE_BIG_INTEGER = self::TYPE_BIGINTEGER;
/**
* @deprecated 5.0.0 Use TYPE_FLOAT instead.
*/
public const PHINX_TYPE_FLOAT = self::TYPE_FLOAT;
/**
* @deprecated 5.0.0 Use TYPE_DECIMAL instead.
*/
public const PHINX_TYPE_DECIMAL = self::TYPE_DECIMAL;
/**
* @deprecated 5.0.0 Use TYPE_DATETIME instead.
*/
public const PHINX_TYPE_DATETIME = self::TYPE_DATETIME;
/**
* @deprecated 5.0.0 Use TYPE_TIMESTAMP instead.
*/
public const PHINX_TYPE_TIMESTAMP = self::TYPE_TIMESTAMP;
/**
* @deprecated 5.0.0 Use TYPE_TIME instead.
*/
public const PHINX_TYPE_TIME = self::TYPE_TIME;
/**
* @deprecated 5.0.0 Use TYPE_DATE instead.
*/
public const PHINX_TYPE_DATE = self::TYPE_DATE;
/**
* @deprecated 5.0.0 Use TYPE_BINARY instead.
*/
public const PHINX_TYPE_BINARY = self::TYPE_BINARY;
/**
* @deprecated 5.0.0 Use TYPE_BINARY_UUID instead.
*/
public const PHINX_TYPE_BINARYUUID = self::TYPE_BINARY_UUID;
/**
* @deprecated 5.0.0 Use TYPE_BOOLEAN instead.
*/
public const PHINX_TYPE_BOOLEAN = self::TYPE_BOOLEAN;
/**
* @deprecated 5.0.0 Use TYPE_JSON instead.
*/
public const PHINX_TYPE_JSON = self::TYPE_JSON;
/**
* @deprecated 5.0.0 Use TableSchemaInterface::TYPE_JSON instead.
*/
public const PHINX_TYPE_JSONB = 'jsonb';
public const PHINX_TYPE_UUID = TableSchemaInterface::TYPE_UUID;
public const PHINX_TYPE_NATIVEUUID = TableSchemaInterface::TYPE_NATIVE_UUID;
/**
* @deprecated 5.0.0 Use TYPE_UUID instead.
*/
public const PHINX_TYPE_UUID = self::TYPE_UUID;
/**
* @deprecated 5.0.0 Use TYPE_NATIVE_UUID instead.
*/
public const PHINX_TYPE_NATIVEUUID = self::TYPE_NATIVE_UUID;

// Geospatial database types
public const PHINX_TYPE_GEOMETRY = TableSchemaInterface::TYPE_GEOMETRY;
public const PHINX_TYPE_POINT = TableSchemaInterface::TYPE_POINT;
public const PHINX_TYPE_LINESTRING = TableSchemaInterface::TYPE_LINESTRING;
public const PHINX_TYPE_POLYGON = TableSchemaInterface::TYPE_POLYGON;
/**
* @deprecated 5.0.0 Use TYPE_GEOMETRY instead.
*/
public const PHINX_TYPE_GEOMETRY = self::TYPE_GEOMETRY;
/**
* @deprecated 5.0.0 Use TYPE_POINT instead.
*/
public const PHINX_TYPE_POINT = self::TYPE_POINT;
/**
* @deprecated 5.0.0 Use TYPE_LINESTRING instead.
*/
public const PHINX_TYPE_LINESTRING = self::TYPE_LINESTRING;
/**
* @deprecated 5.0.0 Use TYPE_POLYGON instead.
*/
public const PHINX_TYPE_POLYGON = self::TYPE_POLYGON;

/**
* @deprecated 5.0.0 Use TYPES_GEOSPATIAL instead.
*/
public const PHINX_TYPES_GEOSPATIAL = [
self::PHINX_TYPE_GEOMETRY,
self::PHINX_TYPE_POINT,
self::PHINX_TYPE_LINESTRING,
self::PHINX_TYPE_POLYGON,
self::TYPE_GEOMETRY,
self::TYPE_POINT,
self::TYPE_LINESTRING,
self::TYPE_POLYGON,
];

// only for mysql so far
public const PHINX_TYPE_YEAR = TableSchemaInterface::TYPE_YEAR;
/**
* @deprecated 5.0.0 Use TYPE_YEAR instead.
*/
public const PHINX_TYPE_YEAR = self::TYPE_YEAR;

// only for postgresql so far
public const PHINX_TYPE_CIDR = TableSchemaInterface::TYPE_CIDR;
public const PHINX_TYPE_INET = TableSchemaInterface::TYPE_INET;
public const PHINX_TYPE_MACADDR = TableSchemaInterface::TYPE_MACADDR;
public const PHINX_TYPE_INTERVAL = TableSchemaInterface::TYPE_INTERVAL;
/**
* @deprecated 5.0.0 Use TYPE_CIDR instead.
*/
public const PHINX_TYPE_CIDR = self::TYPE_CIDR;
/**
* @deprecated 5.0.0 Use TYPE_INET instead.
*/
public const PHINX_TYPE_INET = self::TYPE_INET;
/**
* @deprecated 5.0.0 Use TYPE_MACADDR instead.
*/
public const PHINX_TYPE_MACADDR = self::TYPE_MACADDR;
/**
* @deprecated 5.0.0 Use TYPE_INTERVAL instead.
*/
public const PHINX_TYPE_INTERVAL = self::TYPE_INTERVAL;

/**
* Get all migrated version numbers.
Expand Down
14 changes: 7 additions & 7 deletions src/Db/Adapter/MysqlAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ class MysqlAdapter extends AbstractAdapter
* @var string[]
*/
protected static array $specificColumnTypes = [
self::PHINX_TYPE_YEAR,
self::PHINX_TYPE_JSON,
self::PHINX_TYPE_BINARYUUID,
self::TYPE_YEAR,
self::TYPE_JSON,
self::TYPE_BINARY_UUID,
self::PHINX_TYPE_ENUM,
self::PHINX_TYPE_SET,
self::PHINX_TYPE_BLOB,
Expand Down Expand Up @@ -281,7 +281,7 @@ public function createTable(TableMetadata $table, array $columns = [], array $in
*/
protected function mapColumnData(array $data): array
{
if ($data['type'] == self::PHINX_TYPE_TEXT && $data['length'] !== null) {
if ($data['type'] == self::TYPE_TEXT && $data['length'] !== null) {
$data['length'] = match ($data['length']) {
self::TEXT_LONG => TableSchema::LENGTH_LONG,
self::TEXT_MEDIUM => TableSchema::LENGTH_MEDIUM,
Expand All @@ -291,7 +291,7 @@ protected function mapColumnData(array $data): array
};
}
$blobTypes = [
self::PHINX_TYPE_BINARY,
self::TYPE_BINARY,
self::PHINX_TYPE_VARBINARY,
self::PHINX_TYPE_BLOB,
self::PHINX_TYPE_TINYBLOB,
Expand Down Expand Up @@ -322,7 +322,7 @@ protected function mapColumnData(array $data): array
};
}
$data['type'] = 'binary';
} elseif ($data['type'] === self::PHINX_TYPE_INTEGER) {
} elseif ($data['type'] === self::TYPE_INTEGER) {
if (isset($data['length']) && $data['length'] === self::INT_BIG) {
$data['type'] = TableSchema::TYPE_BIGINTEGER;
unset($data['length']);
Expand Down Expand Up @@ -1105,7 +1105,7 @@ public function getColumnTypes(): array
$types = array_merge(parent::getColumnTypes(), static::$specificColumnTypes);

if ($this->hasNativeUuid()) {
$types[] = self::PHINX_TYPE_NATIVEUUID;
$types[] = self::TYPE_NATIVE_UUID;
}

return $types;
Expand Down
16 changes: 8 additions & 8 deletions src/Db/Adapter/PostgresAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ class PostgresAdapter extends AbstractAdapter
* @var string[]
*/
protected static array $specificColumnTypes = [
self::PHINX_TYPE_JSON,
self::TYPE_JSON,
self::PHINX_TYPE_JSONB,
self::PHINX_TYPE_CIDR,
self::PHINX_TYPE_INET,
self::PHINX_TYPE_MACADDR,
self::PHINX_TYPE_INTERVAL,
self::PHINX_TYPE_BINARYUUID,
self::PHINX_TYPE_NATIVEUUID,
self::TYPE_CIDR,
self::TYPE_INET,
self::TYPE_MACADDR,
self::TYPE_INTERVAL,
self::TYPE_BINARY_UUID,
self::TYPE_NATIVE_UUID,
];

private const GIN_INDEX_TYPE = 'gin';
Expand Down Expand Up @@ -212,7 +212,7 @@ public function createTable(TableMetadata $table, array $columns = [], array $in
protected function mapColumnData(array $data): array
{
if (
$data['type'] === self::PHINX_TYPE_TIMESTAMP &&
$data['type'] === self::TYPE_TIMESTAMP &&
isset($data['timezone']) && $data['timezone'] === true
) {
$data['type'] = 'timestamptimezone';
Expand Down
38 changes: 19 additions & 19 deletions src/Db/Adapter/SqliteAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,24 +39,24 @@ class SqliteAdapter extends AbstractAdapter
* @var string[]
*/
protected static array $supportedColumnTypes = [
self::PHINX_TYPE_BIG_INTEGER => 'biginteger',
self::PHINX_TYPE_BINARY => 'binary_blob',
self::PHINX_TYPE_BINARYUUID => 'uuid_blob',
self::PHINX_TYPE_BOOLEAN => 'boolean_integer',
self::PHINX_TYPE_CHAR => 'char',
self::PHINX_TYPE_DATE => 'date_text',
self::PHINX_TYPE_DATETIME => 'datetime_text',
self::PHINX_TYPE_DECIMAL => 'decimal',
self::PHINX_TYPE_FLOAT => 'float',
self::PHINX_TYPE_INTEGER => 'integer',
self::PHINX_TYPE_JSON => 'json_text',
self::PHINX_TYPE_SMALL_INTEGER => 'smallinteger',
self::PHINX_TYPE_STRING => 'varchar',
self::PHINX_TYPE_TEXT => 'text',
self::PHINX_TYPE_TIME => 'time_text',
self::PHINX_TYPE_TIMESTAMP => 'timestamp_text',
self::PHINX_TYPE_TINY_INTEGER => 'tinyinteger',
self::PHINX_TYPE_UUID => 'uuid_text',
self::TYPE_BIGINTEGER => 'biginteger',
self::TYPE_BINARY => 'binary_blob',
self::TYPE_BINARY_UUID => 'uuid_blob',
self::TYPE_BOOLEAN => 'boolean_integer',
self::TYPE_CHAR => 'char',
self::TYPE_DATE => 'date_text',
self::TYPE_DATETIME => 'datetime_text',
self::TYPE_DECIMAL => 'decimal',
self::TYPE_FLOAT => 'float',
self::TYPE_INTEGER => 'integer',
self::TYPE_JSON => 'json_text',
self::TYPE_SMALLINTEGER => 'smallinteger',
self::TYPE_STRING => 'varchar',
self::TYPE_TEXT => 'text',
self::TYPE_TIME => 'time_text',
self::TYPE_TIMESTAMP => 'timestamp_text',
self::TYPE_TINYINTEGER => 'tinyinteger',
self::TYPE_UUID => 'uuid_text',
];

/**
Expand Down Expand Up @@ -449,7 +449,7 @@ protected function parseDefaultValue(mixed $default, string $columnType): mixed
} elseif (preg_match('/^[+-]?\d+$/i', $default)) {
$int = (int)$default;
// integer literal
if ($columnType === self::PHINX_TYPE_BOOLEAN && ($int === 0 || $int === 1)) {
if ($columnType === self::TYPE_BOOLEAN && ($int === 0 || $int === 1)) {
return (bool)$int;
} else {
return $int;
Expand Down
4 changes: 2 additions & 2 deletions src/Db/Adapter/SqlserverAdapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ class SqlserverAdapter extends AbstractAdapter
* @var string[]
*/
protected static array $specificColumnTypes = [
self::PHINX_TYPE_BINARYUUID,
self::PHINX_TYPE_NATIVEUUID,
self::TYPE_BINARY_UUID,
self::TYPE_NATIVE_UUID,
];

/**
Expand Down
3 changes: 2 additions & 1 deletion src/Util/ColumnParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,8 @@ public function getType(string $field, ?string $type): ?string
$collection = new Collection($reflector->getConstants());

$validTypes = $collection->filter(function ($value, $constant) {
return substr($constant, 0, strlen('PHINX_TYPE_')) === 'PHINX_TYPE_';
return substr($constant, 0, strlen('TYPE_')) === 'TYPE_' ||
substr($constant, 0, strlen('PHINX_TYPE_')) === 'PHINX_TYPE_';
})->toArray();
$fieldType = $type;
if ($type === null || !in_array($type, $validTypes, true)) {
Expand Down
Loading
Loading