private function createTable()
    {
        $sql = "CREATE TABLE `" . $this->schemaName . "` (";

        $definitions = [];

        foreach ($this->columns as $columnName => $column) {
            // The column might be using a more generic type for it's storage.
            $storageColumns = $column->createStorageColumns();

            foreach ($storageColumns as $storageColumn) {
                // And if so that column will be a generic column type - we need to upgrade it.
                $storageColumn = $storageColumn->getRepositorySpecificColumn("MySql");
                $definitions[] = $storageColumn->getDefinition();
            }
        }

        foreach ($this->indexes as $indexName => $index) {
            $indexDefinition = $index->getDefinition();
            if ($indexDefinition) {
                $definitions[] = $indexDefinition;
            }
        }

        $sql .= implode(",", $definitions);
        $sql .= "
			)";

        /** @var MySql $repos */
        $repos = Repository::getDefaultRepositoryClassName();
        $repos::executeStatement($sql);
    }