Open Tigrov opened 1 year ago
Perhaps the solution could be use AbstractSchema::getTableMetadata()
into Schema::findConstraints()
of each DB specific package?
Yes, it looks like this. And use ForeignKeyConstraint[]
instead of associative arrays.
@darkdef @terabytesoftw What do you think?
Perhaps the solution could be use
AbstractSchema::getTableMetadata()
intoSchema::findConstraints()
of each DB specific package?
Or AbstractSchema::getTableForeignKeys()
Suggestion to use one way to get foreign keys Schema::getTableForeignKeys()
and do not store them in TableSchemaInterface
as for indexes
Current implementation loads table foreign keys two times as arrays and as objects.
PostgreSQL https://github.com/yiisoft/db-pgsql/tree/535975396d865da6cb15ed7bee5648c27a9b7360/src/Schema.php#L499 as arrays https://github.com/yiisoft/db-pgsql/tree/535975396d865da6cb15ed7bee5648c27a9b7360/src/Schema.php#L894 as objects
MySQL https://github.com/yiisoft/db-mysql/blob/4dd4e13502a0f047627c398854fc733a41054370/src/Schema.php#L265 as arrays https://github.com/yiisoft/db-mysql/blob/4dd4e13502a0f047627c398854fc733a41054370/src/Schema.php#L618 as objects
SQLite https://github.com/yiisoft/db-sqlite/blob/b172ec9c11f31a5618a80e8cc6e3b298f423eb26/src/Schema.php#L381 as arrays https://github.com/yiisoft/db-sqlite/blob/b172ec9c11f31a5618a80e8cc6e3b298f423eb26/src/Schema.php#L201 as objects
Should they be loaded once?