Exemplo n.º 1
0
 /**
  * Cast default value based on column type. Required to prevent conflicts when not nullable
  * column added to existed table with data in.
  *
  * @param AbstractColumn $column
  * @return bool|float|int|mixed|string
  */
 private function castDefault(AbstractColumn $column)
 {
     if ($column->abstractType() == 'timestamp' || $column->abstractType() == 'datetime') {
         $driver = $this->tableSchema->driver();
         return $driver::DEFAULT_DATETIME;
     }
     if ($column->abstractType() == 'enum') {
         //We can use first enum value as default
         return $column->getEnumValues()[0];
     }
     if ($column->abstractType() == 'json') {
         return '{}';
     }
     switch ($column->phpType()) {
         case 'int':
             return 0;
             break;
         case 'float':
             return 0.0;
             break;
         case 'bool':
             return false;
             break;
     }
     return '';
 }