/** * {@inheritDoc} */ public function fieldToDb(CsvField $csvField) { $dbFields[] = new DbField($csvField->getName(), static::DB_FIELD_TYPE, $csvField->getLimit(), $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique()); // set precision and scale provided by csv migration decimal field type definition foreach ($dbFields as &$dbField) { // skip if scale and precision are not defined if (empty($dbField->getLimit())) { continue; } // skip if scale and precision are not defined correctly if (false === strpos($dbField->getLimit(), '.')) { continue; } list($precision, $scale) = explode('.', $dbField->getLimit()); $options = $dbField->getOptions(); $options['precision'] = $precision; $options['scale'] = $scale; $dbField->setOptions($options); } return $dbFields; }
public function testGetUnique() { foreach ($this->getterProvider() as $v) { $csvField = new CsvField(array_shift($this->csvData)); $this->assertEquals($v[5], $csvField->getUnique()); } }
/** * {@inheritDoc} */ public function fieldToDb(CsvField $csvField) { $dbFields = []; foreach ($this->_fields as $suffix => $options) { $handler = new $options['handler'](); $subField = clone $csvField; $subField->setName($csvField->getName() . '_' . $suffix); if (isset($options['limit'])) { $subField->setLimit($options['limit']); } $dbFields = array_merge($dbFields, $handler->fieldToDb($subField)); } return $dbFields; }
/** * Method responsible for converting csv field instance to database field instance. * * @param \CsvMigrations\FieldHandlers\CsvField $csvField CsvField instance * @return array list of DbField instances */ public function fieldToDb(CsvField $csvField) { $dbFields[] = new DbField($csvField->getName(), static::DB_FIELD_TYPE, null, $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique()); return $dbFields; }
/** * {@inheritDoc} * In addtion, it sets the limit to Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG */ public function fieldToDb(CsvField $csvField) { $dbFields[] = new DbField($csvField->getName(), $csvField->getType(), MysqlAdapter::TEXT_LONG, $csvField->getRequired(), $csvField->getNonSearchable(), $csvField->getUnique()); return $dbFields; }
/** * Method responsible for converting csv field instance to database field instance. * * @param \CsvMigrations\FieldHandlers\CsvField $csvField CsvField instance * @return array list of DbField instances */ public function fieldToDb(CsvField $csvField) { $handler = $this->_getHandler($csvField->getType()); $fields = $handler->fieldToDb($csvField); return $fields; }