- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/orm/entity.php
- Класс: BitrixMainORMEntity
- Вызов: Entity::compileDbTableStructureDump
public function compileDbTableStructureDump()
{
$fields = $this->getScalarFields();
/** @var MainDBMysqlCommonConnection $connection */
$connection = $this->getConnection();
$autocomplete = [];
$unique = [];
foreach ($fields as $field)
{
if ($field->isAutocomplete())
{
$autocomplete[] = $field->getName();
}
if ($field->isUnique())
{
$unique[] = $field->getName();
}
}
// start collecting queries
$connection->disableQueryExecuting();
// create table
$connection->createTable($this->getDBTableName(), $fields, $this->getPrimaryArray(), $autocomplete);
// create indexes
foreach ($unique as $fieldName)
{
$connection->createIndex($this->getDBTableName(), $fieldName, [$fieldName], null,
MainDBMysqlCommonConnection::INDEX_UNIQUE);
}
// stop collecting queries
$connection->enableQueryExecuting();
return $connection->getDisabledQueryExecutingDump();
}