• Модуль: 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();
}