/** * @return bool */ public function syncTable() { $database = new Database(); $database->create($this->getName()); $databaseColumns = $database->describe($this->getName()); $fields = $this->getForm()->getFields(); $storableFields = []; $extendedColumns = []; foreach ($databaseColumns as $column) { $extendedColumns[] = $column['Field']; } foreach ($fields as $columnName => $field) { if ($field->isStorable() && !in_array($field->getName(), $extendedColumns)) { $storableFields[$columnName] = $field->getDataType(); } } if (count($storableFields) > 0) { $database->alter($this->getName(), $storableFields); } return true; }