Development

Changeset 11242

You must first sign up to be able to contribute.

Changeset 11242

Show
Ignore:
Timestamp:
08/29/08 21:02:34 (3 months ago)
Author:
Kris.Wallsmith
Message:

sfPropelPlugin [migration]: Added support for MySQL index sizes to abstraction layer.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/sfPropelPlugin/branches/migration/lib/propel/migration/model/sfPropelIndex.class.php

    r11239 r11242  
    108108    $builder = $this->getBuilder($table->asPropel()); 
    109109 
    110     /** 
    111      * @todo Support MySQL index sizes 
    112      */ 
    113     $script = 'mysql' == self::getDriver() ? 'ALTER TABLE %3$s ADD %1$sKEY %2$s (%4$s);' : 'CREATE %sINDEX %s ON %s (%s);'; 
    114     $script = vsprintf("\n".$script."\n", array( 
     110    $script = vsprintf('CREATE %sINDEX %s ON %s (%s);', array( 
    115111      'unique' == $this->type ? 'UNIQUE ' : '', 
    116112      $builder->quoteIdentifier($this->name), 
    117113      $builder->quoteIdentifier($builder->prefixTablename($table->getName())), 
    118       $builder->getColumnList($this->getColumnNames()), 
     114      $this->getColumnList($builder), 
    119115    )); 
    120116 
    121     return $builder->getDatabaseStartDDL().$script.$builder->getDatabaseEndDDL(); 
     117    return $builder->getDatabaseStartDDL()."\n".$script."\n".$builder->getDatabaseEndDDL(); 
     118  } 
     119 
     120  protected function getColumnList(DDLBuilder $builder) 
     121  { 
     122    if ('mysql' == self::getDriver()) 
     123    { 
     124      /** 
     125       * @see MysqlDDLBuilder::getIndexColumnList() 
     126       */ 
     127      $list = array(); 
     128      foreach ($this->columns as $name => $size) 
     129      { 
     130        $column = $builder->quoteIdentifier($name); 
     131        if ($size) 
     132        { 
     133          $column .= sprintf('(%d)', $size); 
     134        } 
     135 
     136        $list[] = $column; 
     137      } 
     138 
     139      return join(', ', $list); 
     140    } 
     141    else 
     142    { 
     143      return $builder->getColumnList($this->getColumnNames()); 
     144    } 
    122145  } 
    123146}