У меня есть, например:
CREATE TABLE news
(...)
INDEX IDX_1DD399507E3C61F9 (owner_id)
А также:
ALTER TABLE news
(...)
ADD CONSTRAINT FK_1DD399507E3C61F9 FOREIGN KEY (owner_id) REFERENCES user (id)
Я имею в виду, как генерируются имена: IDX_1DD399507E3C61F9 и FK_1DD399507E3C61F9?
Я хочу добавить больше вручную, и я хотел бы сохранить ту же стратегию.
Это случайно или параметризовано?




Взгляните, например, на этот файл в методе addIndex(). Он отвечает за создание вашего индекса IDX_1DD399507E3C61F9.
Подробнее см. в исходном коде на репозиторий github.
$indexName = $this->_generateIdentifierName(
array_merge([$this->getName()], $columnNames),
'idx',
$this->_getMaxIdentifierLength()
);
Этот фрагмент вызывает метод _generateIdentifierName() родительского класса AbstractAsset, от которого вы также можете наследоваться.
protected function _generateIdentifierName($columnNames, $prefix = '', $maxSize = 30)
{
$hash = implode('', array_map(static function ($column) {
return dechex(crc32($column));
}, $columnNames));
return strtoupper(substr($prefix . '_' . $hash, 0, $maxSize));
}