/** * @param Table $table */ protected function analyseColumns(Table $table) { $tableName = $table->getName(); // Analyse columns $columns = $this->driver->getColumns($tableName); foreach ($columns as $key => $col) { $column = new Column(); $column->setName($col['name']); $column->setNullable($col['nullable']); $column->setType(Helpers::columnType($col['nativetype'])); $column->setDefault($col['default']); $column->setOnUpdate(Strings::contains($col['vendor']['Extra'], 'on update')); // Analyse ENUM if ($col['nativetype'] === ColumnTypes::NATIVE_TYPE_ENUM) { $enum = Strings::matchAll($col['vendor']['Type'], ColumnTypes::NATIVE_REGEX_ENUM, PREG_PATTERN_ORDER); if ($enum) { $column->setEnum($enum[1]); $column->setType(ColumnTypes::TYPE_ENUM); $column->setSubType(Helpers::columnType($col['nativetype'])); } } $table->addColumn($column); } }